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

时间:2010-07-29 17:53:22

标签: windows perl strawberry-perl activeperl

我对Perl完全不熟悉,但我想尝试一下。我读到了两个适用于Windows平台的竞争对手的发行版(我猜在其他操作系统上只有 Perl :)。

Wikipedia说,如果需要,Strawberry会附带开发工具来编译CPAN模块。听起来不错。

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

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

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

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

10 个答案:

答案 0 :(得分:45)

Strawberry Perl使用CPAN,这意味着就模块而言,您是最新的。将事物添加到CPAN后,您可以立即访问它们。 Strawberry Perl还附带MinGW,这意味着Strawberry Perl可以直接从CPAN使用相当多的XS模块而无需任何修改。 MinGW发行版附带gccmakeld以及其他可帮助您构建模块的工具。我认为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。

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

答案 1 :(得分:37)

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

AcitveState / PPM专业人士:如果您的版本有PPM,那么它就可以正常运行。

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

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

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

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

我喜欢草莓。我很欣赏ActiveState尝试做的事情,但我认为这是开发过程中的一个瓶颈。在社区聚集在一起构建草莓以将Windows带入Perl生态系统的“第一世界”之前,它们是必需的,但它们已经不再需要了。

答案 2 :(得分:33)

在使用了两年之后,我会说,至少对我来说,Activeperl是一个更方便的选择。 Activeperl中包含的ppm-Installer允许您添加alternative ppm repositories,这将使您可以访问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:编译你自己的内联或XS的东西,只是install the MinGW compiler by ppm(我没有这样做,但看起来很有趣)。

此致

RBO

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

答案 3 :(得分:19)

草莓在其方法上更为复杂,当我使用它时,我一直非常高兴。

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

只是乱搞,IMO,草莓更好。 /主观

答案 4 :(得分:13)

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

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

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

答案 5 :(得分:3)

在一个完美的世界中,我选择debian-interixpkgsrc-interix perl(不是Interix / SFU / SUA附带的古老Perl),因为它提供了最类似POSIX / UNIX的系统(包括真正的copy-on-write fork,而不是来自Cygwin的windows fork仿真)。我过去(它安装在Windows机器上),但不是每个人都可以/将只为Perl安装SFU / SUA。在这些情况下,我建议使用ActivePerl,主要是因为界面熟悉Windows用户(PPM图形shell与CPAN)以及它与Perl Dev Kit(PerlExe,PerlNET,PerlSvc和朋友)的集成。此外,与其他人所回答的相反,您可以将CPAN(和CPAN shell)与ActivePerl一起使用(尽管它确实需要先通过PPM安装必要的开发工具)。

答案 6 :(得分:3)

ActivePerl从社区版中排除了大量模块,在Windows下构建它们真是太痛苦了。

此外,他们会让您免费下载和使用最新版本。其他所有内容,例如访问5.8.8或早期版本的模块,都是Business($ 1000 /年/服务器)或Enterprise edition(每个引用)。

答案 7 :(得分:2)

如果您的应用程序设计正确,那么您选择的应该无关紧要。

一个重点可能是每个可以提供或不提供的各种模块的版本。 PPM软件包可能会落后于CPAN版本,但如果您不小心,那么前沿的CPAN版本可能会破坏向后兼容性。此外,有时会有一些PPM软件包用于在草莓下不能正确构建的东西(尽管这意味着模块设计得很差)。

请注意您使用的任何模块的版本,无论您选择哪种模块,都应该没问题。

答案 8 :(得分:2)

如果Larry Wall使用Strawberry Perl你也应该这样做。 ;)

答案 9 :(得分:1)

如果您使用box.com客户端同步文件,那么您可能希望(至少目前)使用Strawberry Perl。 ppm可执行文件与Box.com DLL之一冲突。 gui根本不会启动(产生Windows消息“perl ...解释器已停止工作”。)安装Box.com客户端时,我也使用命令行版本的ppm时出现间歇性问题。