该win32.perl.org网站提供参考的几个Perl分发用于MS Windows.
很长一段时间我一直在使用ActiveState的 ActivePerl, 但最近我转而使用 Strawberry 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.