我应该在Windows上使用哪个版本的Perl?
win32.perl.org网站提供了几个适用于MS Windows的Perl发行版的参考。
很长时间以来,我一直使用ActiveState的 ActivePerl,但最近我转而使用Strawberry Perl 。
恕我直言,活性Perl仍然超过草莓Perl的唯一好处是,它附带了Perl Tk,这意味着它很容易安装Devel :: ptkdbgraphicsdebugging器。 除此之外,我认为草莓Perl有所有的优势。
Perl草莓越来越好了。 我一再用ActiveState的一个问题是我的模块有时无法安装,因为我需要升级到核心模块,但他们不会允许。 因此,每个不使用Windows的人都可以使用我的代码,但是他们不能使用ActiveState的Perl。
ActiveState也有一个非常狡猾的构build系统,往往无法准确报告为什么模块无法构build。 我厌倦了发送电子邮件,并要求我最终放弃这些信息。 我希望我的代码能够在Windows上运行,但是如果ActiveState不提供这些信息并且不给我任何升级核心模块的选项,我就不能使用它。 我的一些模块在任何操作系统上都没有构build失败,除了那些使用ActiveState Perl的构件。 支持Strawberry Perl,不用担心ActiveState。
如果ActiveState已经修复了他们的构build系统和“不升级核心模块”策略,那么值得重新审视。
没有单一的最好的Perl发行版。 Vanilla Perl (可重定位,可重新分配的Perl),而且对开发更友好草莓Perl具有很大的潜力。
不过, ActivePerl如此受欢迎的原因有很多。 这些优势大部分来自最终用户的易于部署(无需编译器使用其包pipe理器,PPM)。 ActiveState PDK(Perl开发工具包)也是打包完整的Windows二进制文件的一种非常好的方式,它不需要在用户机器上安装任何Perl。
不幸的是,许多非常好的CPAN模块(比如OpenSSL的Perl绑定)不能通过ActiveState的仓库获得。
像大多数情况一样,您应该根据哪种分配方式最符合您的需求进行select。
我主要使用ActivePerl,但我真的很喜欢Strawberry Perl的领导。 我喜欢cpanshell“只是工作”,我不必跳过一堆箍来安装XS模块。 (例如ExtUtils :: FakeConfig,尽pipe在最近的ActivePerl构build中这是不太必要的。)我也对在一个thumbdrive上使用Perl的可能性感到兴奋。 Portable Perl的dev版本已经相当实用了。
我同意ActivePerl的主要优点是Tk开箱即用,但请注意,从5.10开始ActivePerl默认不再附带Tk。 它与Tkx相反。
未来肯定是Strawberry Perl。 无论你select哪个(而这个问题并不是Windows所特有的),如果你将最终结果分发给其他机器,你将必须小心,关于你提供的安装程序/安装说明。
Perl的草莓更像Perl上的* nix。 它配备了MinGW ,可以自己使用。 Perl模块也可以用ppm或cpan安装。
我总是使用Cygwin(带有bash的xterms比cmd窗口好得多)以及随附的Perl。 我使用CPAN shell(“cpan”命令)安装Perl模块; 它工作正常。
我远远喜欢Strawberry Perl。 首先,它将gcc作为mingwin的一部分安装,以便可以从CPAN直接安装。
我用ActiveState的perl了一段时间,但是我有很多从一台机器到另一台机器,尽pipe他们(貌似)configuration相同。 他们的PPM模块包装也留下了不好的口味。 这使得pipe理软件包变得非常简单,但是您可以依靠它们在CPAN更新之后更新PPM。 另外,PPM绝不是CPAN的全部内容; 最后一次使用ActivePerl,我很难find所需的所有模块,而那些在那里的模块往往是旧版本。
我在草莓方面遇到了很多问题,我觉得没有任何支持。 PerlMonks的好人不能帮助我,我放弃了。 如果这个页面给你留下了一定的信心,那么你的答案就是这样。
一直以来,ActiveState Perl都被认为是事实上的Windows Perl。 虽然它有很多的缺陷,我们很多人使用其他的东西,但仍然非常受欢迎。 如果你要在Windows机器上创buildPerl代码(除了你自己的代码),我会考虑在执行它的Perl安装时,用一个默认的(或者我可以默认的)来编写它。 除此之外,还有一些其他方面正在为其他人尝试使用您的应用程序带来障碍。
我写的代码登陆财富500强公司,所以“企业”的感觉是有帮助的。 到目前为止,我已经使用了ActivePerl,并且对于内部工具和分发给那些大型客户的工作都很好。
我正在使用Active State Perl 5.014,它工作正常。
问题是,它没有最新版本的Padre(IDE,debbugging环境)。