我应该为Windows选择ActivePerl还是Strawberry Perl?

And*_*кин 107 windows perl activeperl strawberry-perl

我是Perl的新手,但我想尝试一下.我读到了两个可用于Windows平台的竞争对手(我想其他操作系统上只有 Perl :).

维基百科说,如果有必要,Strawberry会附带开发工具来编译CPAN模块.对我来说不错.

它还说ActivePerl有很多预先打包的模块,使用PPM更容易安装.听起来也很棒!

这两者之间有明确的权衡.我想知道我应该选择什么才能开始?如果我选择一个有多难移植到另一个?

编辑:我给这两个发行版跑了几个星期.我真的很喜欢这两件事都是好事!其中任何一个都不会出错.我最终只使用ActivePerl,因为它带有离线文档(HTML格式) - 对于那些在路上或者并不总是连接的人来说,这是一个伟大的生命救星.当我不在线时,我在度假时开始使用Perl语言非常容易.

草莓至少同样伟大,如果不是更大.所以我也可以完全推荐它.我不得不说一个人应该学习Perl - 这是一门非常漂亮的语言.试试看!

Viv*_*ath 45

Strawberry Perl使用CPAN,这意味着就模块而言,您是最新的.将事物添加到CPAN后,您可以立即访问它们.Strawberry Perl还附带MinGW,这意味着Strawberry Perl可以直接从CPAN使用相当多的XS模块而无需任何修改.MinGW的分布自带gcc,make,ld和其他工具,以帮助您构建模块.我认为Strawberry Perl还附带了一些模块,可以让你安装PPM(Perl Package Manager文件).

ActivePerl使用自己的格式PPM(Perl Package Manager)安装模块.官方存储库由ActiveState托管.你可以找到大多数流行模块的PPM,所以你不应该有任何麻烦,除非你正在寻找一个模糊或真正新的包(因此PPE通常落后于CPAN,因此前沿的东西不起作用).虽然比CPAN模块更容易安装,但PPM是专门为Windows创建的,因此一些CPAN模块不起作用(因为它们执行特定于Unix的操作).

我之前使用过它们,它似乎适用于大多数情况.但我倾向于草莓Perl,因为环境更接近Unix,因此没有太多的不兼容性.另一方面,ActivePerl适用于Windows,因此它可以很好地与Windows配合使用.

另一个选择是安装Cygwin附带的Cygwin和Perl.我以前做过这件事并且工作得相当好.您还可以访问CPAN.

选择您认为最适合您的方式.


hob*_*bbs 37

在Vivin Paliath的一个有用的答案上放大一点:

AcitveState/PPM专业人士:如果您的版本有PPM,那么它将会起作用.

ActiveState/PPM缺点:并不总是PPM,或者至少不总是最新的PPM.

Strawberry/CPAN专业人士:您的存储库是CPAN,而不是由第三方维护的一堆二进制文件.在作者发布它们的那一刻,您就拥有了新的模块,并且您正在使用作者想要的构建系统.

草莓/ CPAN缺点:并非所有东西都能保证与Windows工具完美搭配.

草莓/ CPAN缓解因素:草莓开发人员尝试真的,非常难以确保一切顺利,尽可能多的CPAN可供您使用,并且当模块被识别为故障点(难以在Windows上构建,但是其他流行的模块/应用程序所需要的,他们要么与作者合作以修复模块,以便每个人都可以安装它,或者在特殊情况下,应用他们自己的修正并将模块与Strawberry或Strawberry Professional捆绑在一起.

我喜欢草莓.我很欣赏ActiveState尝试做的事情,但我认为这是开发过程中的一个瓶颈.他们是必要的前社区聚集在一起,建立草莓带来的Windows到Perl的生态系统的"世界第一",但他们没有必要了.


rub*_*ots 33

在使用了两年后,我会说,至少对我来说,Activeperl是一个更方便的选择.Activeperl中包含的ppm-Installer允许您添加替代ppm存储库,这将使您可以访问CPAN上几乎所有可用的perl模块 - 但是为Windows准备和测试.从长远来看,这对我来说是一个更好(更强大)的选择.即使对于Apache http服务器的Windows版本,也有一个预编译的mod_perl(2.0.4)ppm可用(对我而言)开箱即用的Activeperl 5. 12 .1和Apache 2.2.15.

我想在尝试在Windows 7上安装DBI + DBD :: mysql之后放弃了Strawberry(在Activeperl中没有脑子,只需点击ppms然后选择安装).

但也许现在已经解决了.也许可以选择草莓安装的目录(我不能).

BTW:为了编译你自己的Inline或XS的东西,只需按照ppm安装MinGW编译器(我没有这样做,但它看起来很有趣).

问候

RBO

附录:阅读下面的评论后,我再次检查了Strawberry Perl,现在可以更改安装目录,这是5.12.0版本(实际版本)的标记功能.这将解决Strawberry Perl的一个重要(imho)缺点(与Activeperl相比).

  • 在去年的某个时候,只有在购买商业版或企业版时,ActivePerl才能通过软件包管理器提供许多方便可用的PPM.对于我们这些需要免费解决方案的人来说,重新审视草莓可能是值得的. (7认同)
  • 草莓和DBD也可以使用ppm ::草莓安装中包含了mysql.您也可以将Strawberry 5.12.x安装到任何目录中. (5认同)
  • @ k-den - 感谢您的信息.自从Perl 5.16以来我已经放弃了AP并没有回头看.它在过去几年中显着成熟. (5认同)

Pau*_*han 19

草莓在它的方法上更加Unixy,当我使用草莓时,我总是很开心.

然而,由于其自​​定义包管理系统,ActiveState在我使用它时一直是一个巨大的痛苦.当您处于企业环境中时,这很重要.

对于只是搞乱,IMO,草莓更好./主观


Fra*_*ozo 13

两者都很棒并且工作原理相同.Strawberry因能够构建XS模块而闻名,但如果您只安装Visual Studio SDK(或免费快速版),也可以使用ActiveState.

就此而言,如果您可以访问Visual Studio,那么您可以做的最好的事情是从源代码构建Perl(如果您阅读README,这很容易)并继续使用相同的编译器构建模块.这实际上比混合编译器/模块更好.

如果使用ActiveState,您必须考虑一件事:如果您将其安装在面向互联网的服务器上,那么您需要购买营业执照(如Ron Warshawsky所述,每年1000美元/服务器).这并不意味着它不会起作用,这只是EULA中的要求.许多人不知道这一点,并且在没有购买相应许可证的情况下将其安装在面向互联网的服务器上.

  • +1表示警告ActiveState不是免费的(与普遍看法相反). (2认同)