win32.perl.org网站提供了多个适用于微软Windows操作系统的Perl发行版本的参考资料。
长期以来,我一直在使用ActiveState提供的ActivePerl,但最近我转换到了Strawberry Perl。
在我看来,唯一有优势的是ActivePerl附带了Perl Tk,这意味着可以轻松安装Devel::ptkdb图形化调试器。除此之外,我认为Strawberry Perl具有全部优势。
win32.perl.org网站提供了多个适用于微软Windows操作系统的Perl发行版本的参考资料。
长期以来,我一直在使用ActiveState提供的ActivePerl,但最近我转换到了Strawberry Perl。
在我看来,唯一有优势的是ActivePerl附带了Perl Tk,这意味着可以轻松安装Devel::ptkdb图形化调试器。除此之外,我认为Strawberry Perl具有全部优势。
草莓 Perl 越来越好用了。我一直遇到的一个问题是,在 ActiveState 上,我的模块有时因为需要升级核心模块而无法安装,但他们不允许这样做。因此,那些不使用 Windows 的人可以使用我的代码,但是在 ActiveState Perl 上却不能。
ActiveState 还有一个非常靠不住的构建系统,经常无法报告模块构建失败的原因。我厌倦了发送电子邮件寻求信息,最终放弃了。虽然我想让我的代码在 Windows 上运行,但如果 ActiveState 不提供这些信息并且没有升级核心模块的选项,我就无法使用它。我的一些模块在任何操作系统上都没有构建失败的情况,除了使用 ActiveState Perl 的操作系统。支持草莓 Perl,不要担心 ActiveState。
如果 ActiveState 已经解决了他们的构建系统和 “不能升级核心模块” 政策,那么值得重新考虑。
cpan
这样的命令无法正常工作。 - Colonel Panic没有单一最佳的Perl发行版。Vanilla Perl(可重定位、可再分发的Perl)和更加开发者友好的Strawberry Perl具有显著的潜力。
然而,ActivePerl 之所以如此受欢迎,有一个非常好的原因。它的优势主要体现在您的终端用户部署时的便利性(使用其软件包管理器PPM无需编译器)。ActiveState PDK(Perl Development Kit)也是打包完整Windows二进制文件的非常好的方式,不需要在用户机器上安装任何Perl。
不幸的是,许多非常好的CPAN模块(例如 OpenSSL 的Perl绑定)在ActiveState的仓库中不可用。
像大多数事情一样,您应该根据哪个发行版最能满足您的需求来进行选择。
我同意ActivePerl的主要优点是默认带有Tk,但请注意,自5.10版本以来,ActivePerl不再默认带有Tk。它改为默认带有Tkx。
未来肯定是Strawberry Perl。 无论你选择哪个(这个问题并不局限于Windows),如果你要将最终结果分发给其他机器,你必须谨慎处理提供的安装程序/安装说明。
我曾经使用过ActiveState的perl,但是尽管它们(表面上)配置相同,但在不同机器上我遇到了很多问题。他们的PPM模块的打包方式让人感觉不太好。它使管理软件包非常简单,但是您需要依赖他们更新PPM以跟进CPAN的更新。此外,PPM并不是CPAN的全部内容;上次我使用ActivePerl时,我发现很难找到所有我所需的模块,而且那些模块通常是旧版本。
我经常使用Cygwin(xterms与bash比cmd窗口好得多),并且使用它自带的Perl。我使用CPAN shell(“cpan”命令)安装Perl模块,这很好用。
ActiveState Perl长期以来一直被认为是事实上的Windows Perl。虽然它有很多缺陷,而且我们中的很多人使用其他东西,但它仍然非常受欢迎。如果你正在构建要在Windows机器上执行的Perl代码(不是你自己的),我会考虑着眼于默认情况下(或尽可能接近默认情况)AS Perl安装程序的执行方式来编写它。否则,你将为其他试图稍后使用你的应用程序的人引入障碍。
我在使用Strawberry的过程中遇到了很大的问题,感觉没有得到任何支持。即使向PerlMonks社区求助也没有解决。如果这个页面让你对于Strawberry缺乏信心,那么这就是答案。