我应该在Windows上使用哪个版本的Perl?[关闭]


98

win32.perl.org网站提供参考的几个Perl分发用于MS Windows。

长期以来,我一直在使用ActiveState中的 ActivePerl, 但最近我切换到 Strawberry Perl

恕我直言,Active Perl相对于Strawberry Perl仍然具有的唯一优势是,它带有Perl Tk,这意味着它易于安装 图形调试器Devel :: ptkdb。除此之外,我认为Strawberry Perl具有所有优点。


从这篇文章开始,我开始用很多附加模块来重新包装Strawberry Perl,包括Moose,Dancer和Padre。读者也可能要考虑这一点:dwimperl.com
szabgab 2012年

Answers:


80

草莓Perl越来越好。我对ActiveState反复遇到的一个问题是,我的模块有时无法安装,因为我需要升级到核心模块,但它们不允许这样做。因此,每个使用Windows的人都可以使用我的代码,但是他们不能使用ActiveState的Perl来做到这一点。

ActiveState的构建系统也很狡猾,通常无法准确报告模块构建失败的原因。我非常讨厌通过电子邮件发送和询问此信息,最终我放弃了。我希望我的代码在Windows上运行,但是如果ActiveState不向我提供这些信息,并且不给我任何升级核心模块的选项,则我将无法使用它。我的一些模块在任何操作系统上都没有构建失败-带有ActiveState Perl的模块除外。支持Strawberry Perl,而不必担心ActiveState。

如果ActiveState已修复其构建系统和“不升级至核心模块”的策略,则值得重新审视。


8
可以从AS Perl 5.8.8 build 518(2007年1月发布)升级核心模块。他们还在2008年升级了CPAN构建系统,但我不知道确切的时间。
2009年

1
草莓Perl很棒。但是,如果您将MSys Bash用作外壳,则存在一个已知问题,该命令cpan无法正常工作。
Panic Panic

30

没有单一的最佳Perl发行版。Vanilla Perl(可重定位,可重新分配的Perl),以及对开发人员更友好的Strawberry Perl具有巨大的潜力。

但是,有一个很好的理由说明ActivePerl如此受欢迎的原因。优势主要表现为最终用户易于部署(无需使用其软件包管理器PPM的编译器)。ActiveState PDK(Perl开发工具包)也是打包完整的Windows二进制文件(不需要在用户的计算机上安装任何Perl)的一种很好的方法。

不幸的是,许多非常好的CPAN模块(例如OpenSSL的Perl绑定)无法通过ActiveState的存储库获得。

像大多数事情一样,您应该根据最能满足您需求的发行版进行选择。


PerlApp看起来确实是个有用的工具(我没有将其与Par :: Packer进行比较),但是它附带的PDK的价格为300美元。
Nate Glenn 2013年

17

我主要使用ActivePerl,但是我非常喜欢Strawberry Perl的发展方向。我喜欢cpan外壳“可以正常工作”,而且我不必跳过很多箍来安装XS模块。(例如,ExtUtils :: FakeConfig,尽管在最新的ActivePerl构建中没那么必要。)我也对Perl在指驱动器上的可能性感到兴奋。Portable Perl的开发版本已经相当有用。

我同意ActivePerl的主要优点是可以立即使用Tk,但是请注意,从5.10版本开始,ActivePerl默认不再附带Tk。它随Tkx一起提供。


13

未来绝对是草莓Perl。无论选择哪种方法(这个问题不是Windows独有的),如果要将最终结果分发给其他计算机,则在提供的安装程序/安装说明方面都必须谨慎。


6

Strawberry Perl更像* nix上的Perl。MinGW附带了它,它可能自己有用。Perl模块也可以与ppm或cpan一起安装。


1
注意:如果您在草莓perl旁边安装mingw,请注意,草莓perl可能使用了不同版本的minsys应用。在使草莓perl构建Win32 :: OLE和其他模块之前,我遇到了一些主要问题,直到我从路径中删除了mingw。
罗伯特·P

如果您真的希望像* nix上的Perl一样在Windows上使用Perl,请安装SUA / SFU(不要安装随附的Perl),然后使用Debian Interix / pkgsrc-interix的Perl。
MkV

4

我到目前为止更喜欢草莓Perl。例如,它将gcc作为mingwin的一部分进行安装,以便您可以直接从CPAN安装。

我花了一段时间使用ActiveState的perl,但是尽管它们(似乎)配置相同,但从一台机器到另一台机器我还是很疲倦。他们的PPM模块包装也留下了不好的味道。它使管理软件包变得非常简单,但是您需要依靠它们在CPAN更新后更新PPM。同样,PPM绝不是CPAN的全部内容;上一次使用ActivePerl时,我很难找到我需要的所有模块,并且那里的模块通常是一个旧版本。


2
我很好奇什么票数不好。
gWaldo

3

我总是使用Cygwin(带有bash的xterm比cmd Windows更好)和它附带的Perl。我用CPAN shell安装Perl模块(“ cpan”命令);它工作正常。


3

ActiveState Perl已经被认为是事实上的Windows Perl了一段时间。尽管它有很多缺陷,而且我们很多人使用其他东西,但它仍然很受欢迎。如果您要构建要在Windows机器(而不是您自己的Windows机器)上执行的Perl代码,我会考虑将其编写为默认(或默认情况下)的AS Perl安装执行它。其他所有情况,都会给以后尝试使用您的应用程序的其他人引入进入障碍。


AFAIK,PAR pp与Strawberry配合良好,这在分发您自己的应用程序方面具有很大优势,因为IIUC您需要OEM许可才能使用DLL分发pp编译的应用程序。
SinanÜnür09年

3
@Sinan,您有关ActivePerl许可和PAR的声明不正确。请参阅许可证The license also allows You to redistribute parts of the Package as part of an application generated by wrapping tools such as PAR, PerlApp or Perl2Exe. However, this License does not allow You to (a) redistribute the Package as a whole, (b) use its parts to create a language distribution, or (c) redistribute the PerlScript, Perl for ISAPI or PerlEx components with Your application. activestate.com/activeperl/license的
daotoad 2010年

@daotoad Hmmmm ...我可以发誓较早的版本不允许它,但我不确定我是否正确记得。谢谢你的纠正。
SinanÜnür10年

2

我在草莓方面遇到了重大问题,我感到没有任何支持。PerlMonks的好人无法帮助我,我放弃了。如果此页面使您毫无信心,那就可以找到答案。


1

我编写的代码在《财富》 500强公司中占有一席之地,因此“企业”的感觉很有帮助。到目前为止,我已经使用过ActivePerl,它对于内部工具和向那些大型客户的分发都非常有效。


1

我正在使用Active State Perl 5.014,它可以正常工作。

问题是,它没有Padre的最新版本(IDE,具有调试功能的环境)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.