该win32.perl.org网站提供参考的几个Perl分发用于MS Windows。
长期以来,我一直在使用ActiveState中的 ActivePerl, 但最近我切换到 Strawberry Perl。
恕我直言,Active Perl相对于Strawberry Perl仍然具有的唯一优势是,它带有Perl Tk,这意味着它易于安装 图形调试器Devel :: ptkdb。除此之外,我认为Strawberry Perl具有所有优点。
该win32.perl.org网站提供参考的几个Perl分发用于MS Windows。
长期以来,我一直在使用ActiveState中的 ActivePerl, 但最近我切换到 Strawberry Perl。
恕我直言,Active Perl相对于Strawberry Perl仍然具有的唯一优势是,它带有Perl Tk,这意味着它易于安装 图形调试器Devel :: ptkdb。除此之外,我认为Strawberry Perl具有所有优点。
Answers:
草莓Perl越来越好。我对ActiveState反复遇到的一个问题是,我的模块有时无法安装,因为我需要升级到核心模块,但它们不允许这样做。因此,每个不使用Windows的人都可以使用我的代码,但是他们不能使用ActiveState的Perl来做到这一点。
ActiveState的构建系统也很狡猾,通常无法准确报告模块构建失败的原因。我非常讨厌通过电子邮件发送和询问此信息,最终我放弃了。我希望我的代码在Windows上运行,但是如果ActiveState不向我提供这些信息,并且不给我任何升级核心模块的选项,则我将无法使用它。我的一些模块在任何操作系统上都没有构建失败-带有ActiveState Perl的模块除外。支持Strawberry Perl,而不必担心ActiveState。
如果ActiveState已修复其构建系统和“不升级至核心模块”的策略,则值得重新审视。
cpan
无法正常工作。
没有单一的最佳Perl发行版。Vanilla Perl(可重定位,可重新分配的Perl),以及对开发人员更友好的Strawberry Perl具有巨大的潜力。
但是,有一个很好的理由说明ActivePerl如此受欢迎的原因。优势主要表现为最终用户易于部署(无需使用其软件包管理器PPM的编译器)。ActiveState PDK(Perl开发工具包)也是打包完整的Windows二进制文件(不需要在用户的计算机上安装任何Perl)的一种很好的方法。
不幸的是,许多非常好的CPAN模块(例如OpenSSL的Perl绑定)无法通过ActiveState的存储库获得。
像大多数事情一样,您应该根据最能满足您需求的发行版进行选择。
我主要使用ActivePerl,但是我非常喜欢Strawberry Perl的发展方向。我喜欢cpan外壳“可以正常工作”,而且我不必跳过很多箍来安装XS模块。(例如,ExtUtils :: FakeConfig,尽管在最新的ActivePerl构建中没那么必要。)我也对Perl在指驱动器上的可能性感到兴奋。Portable Perl的开发版本已经相当有用。
我同意ActivePerl的主要优点是可以立即使用Tk,但是请注意,从5.10版本开始,ActivePerl默认不再附带Tk。它随Tkx一起提供。
Strawberry Perl更像* nix上的Perl。MinGW附带了它,它可能自己有用。Perl模块也可以与ppm或cpan一起安装。
我总是使用Cygwin(带有bash的xterm比cmd Windows更好)和它附带的Perl。我用CPAN shell安装Perl模块(“ cpan”命令);它工作正常。
ActiveState Perl已经被认为是事实上的Windows Perl了一段时间。尽管它有很多缺陷,而且我们很多人使用其他东西,但它仍然很受欢迎。如果您要构建要在Windows机器(而不是您自己的Windows机器)上执行的Perl代码,我会考虑将其编写为默认(或默认情况下)的AS Perl安装执行它。其他所有情况,都会给以后尝试使用您的应用程序的其他人引入进入障碍。
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的