我应该在Windows上使用哪个版本的Perl?

我应该在Windows上使用哪个版本的Perl?

Which version of Perl should I use on Windows?

win32.perl.org网站提供了对MS Windows的几个Perl发行版的引用。

很长一段时间我一直在使用ActivePerl
ActiveState但最近我切换到了
草莓Perl。

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


Strawberry Perl正在变得越来越好。我反复使用ActiveState的一个问题是我的模块有时无法安装,因为我需要升级到核心模块,但他们不会允许。因此,每个不使用Windows的人都可以使用我的代码,但他们无法使用ActiveState的Perl。

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

如果ActiveState修复了他们的构建系统并且"没有升级到核心模块"策略,那么值得重新审视。


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

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

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

与大多数事情一样,您应根据最符合您需求的分布进行选择。


我主要使用ActivePerl,但我真的很喜欢Strawberry Perl的发展方向。我喜欢cpan shell"只是工作"而且我不必跳过一堆箍来安装XS模块。 (例如ExtUtils :: FakeConfig,虽然在最近的ActivePerl构建中不太必要。)我也对拇指驱动器上Perl的可能性感到兴奋。 Portable Perl的开发版已经非常实用了。

我同意ActivePerl的主要优点是Tk开箱即用,但请注意,自5.10起,ActivePerl默认不再附带Tk。它随Tkx一起提供。


未来绝对是Strawberry Perl。
无论您选择哪个(并且此问题并非Windows独有),如果您将最终结果分发给其他计算机,则您必须要小心提供的安装程序/安装说明。


Strawberry Perl更像是@nix上的Perl。它配备了MinGW,可以单独使用。 Perl模块也可以安装ppm或cpan。


我到目前为止更喜欢Strawberry Perl。 首先,它将gcc安装为mingwin的一部分,以便您可以直接从CPAN安装。

我使用ActiveState的perl已经有一段时间了,但是从一台机器到另一台机器我都有很多的瑕疵,尽管它们(看似)配置相同。 他们的PPM模块包装也留下了不好的味道。 它使管理包变得简单,但您依赖它们在CPAN更新后更新PPM。 此外,PPM绝不是CPAN的全部内容; 我最后一次使用ActivePerl时,很难找到我需要的所有模块,而那些模块通常都是旧版本。


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


ActiveState Perl已被认为是事实上的Windows Perl已有一段时间了。虽然它有很多缺陷,而且我们很多人都使用其他东西,但它仍然非常受欢迎。如果你要构建在Windows机器上执行的Perl代码(除了你自己的机器),我会考虑编写它以着眼于默认(或默认情况下我可以得到它)AS Perl安装执行它。其他任何事情,你正在为其他人试图在以后使用你的应用程序时引入障碍。


我写的代码登陆财富500强企业,所以"企业"的感觉很有帮助。到目前为止,我已经使用过ActivePerl,它既适用于内部工具,也适用于分发给那些大客户。


我有草莓的主要问题,我觉得没有支持。 PerlMonks的好人无法帮助我,我放弃了。如果这个页面让你有一定的信心,那就是你的答案。


我正在使用Active State Perl 5.014,它工作正常。问题是,它没有最新版本的Padre(IDE,debbugging环境)。


推荐阅读