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

时间:2008-09-16 11:53:41

标签: windows perl debugging strawberry-perl

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

很长一段时间我一直在使用ActivePerl ActiveState但最近我改用了 Strawberry Perl

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

11 个答案:

答案 0 :(得分:79)

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

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

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

答案 1 :(得分:30)

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

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

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

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

答案 2 :(得分:17)

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

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

答案 3 :(得分:13)

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

答案 4 :(得分:6)

Strawberry Perl更像是* nix上的Perl。它附带MinGW,它本身可能很有用。 Perl模块也可以安装ppm或cpan。

答案 5 :(得分:4)

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

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

答案 6 :(得分:3)

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

答案 7 :(得分:3)

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

答案 8 :(得分:2)

我遇到了草莓的主要问题,我觉得没有支持。 PerlMonks的好人无法帮助我,我放弃了。如果this page让您失去信心,那就是您的答案。

答案 9 :(得分:2)

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

答案 10 :(得分:1)

我正在使用Active State Perl 5.014,它运行正常。

问题是,它没有最新版本的Padre(IDE,debbugging环境)。