我应该selectWindows的ActivePerl或草莓Perl?

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

维基百科说,如果需要的话,Strawberry附带了额外的开发工具来编译CPAN模块。 听起来不错。

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

这两者之间有明显的折衷。 我想知道我应该select什么来开始? 如果我select一个迁移到另一个有多难?

编辑:我给这两个分发运行了几个星期。 我真的很喜欢这两件事是一件好事! 这两者中的任何一个都不会出错。 我最终只用ActivePerl,因为它带有脱机文档(在HTML中) – 对于那些在路上或者并不总是连接的人来说,这是一个伟大的救命恩人。 在我休假的时候,我并不总是在线,所以开始使用Perl语言是非常容易的。

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

在使用了两年之后,至less对我来说,Activeperl是一个更方便的select。 Activeperl中包含的ppm安装程序允许您添加可选的ppm存储库 ,使您可以访问CPAN上几乎所有可用的perl模块 – 但是已经为windows准备和testing。 从长远来看,这对我来说是一个好得多的select。 即使是Apache http服务器的windows版本,也有一个预编译的mod_perl(2.0.4)ppm可用,这对我来说可以和Activeperl 5.1.2和Apache 2.2.15一起使用 。

我想我尝试在Windows 7上安装DBI + DBD :: mysql(这是Activeperl中的一个小脑袋 ,只需单击ppms并select安装)即可删除草莓。

但也许现在解决了。 也许可以select草莓安装的目录(我不能)。

顺便说一句:编译自己的Inline或XS的东西,只需安装MinGW编译器ppm (我没有这样做,但看起来很有趣)。

问候

RBO

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

草莓Perl使用CPAN,这意味着就模块而言,您是最新的。 当事情被添加到CPAN时,您可以立即访问它们。 草莓Perl也带有MinGW,这意味着草莓Perl可以直接从CPAN使用相当多的XS模块而不需要任何修改。 MinGW发行版带有gccmakeld和其他工具来帮助你构build模块。 我认为Strawberry Perl还附带了一些让您安装PPM(Perl Package Manager文件)的模块。

ActivePerl使用称为PPM(Perl Package Manager)的自己的格式安装模块。 官方存储库由ActiveState托pipe。 你可以find大多数stream行模块的PPM,所以你不应该有任何麻烦,除非你正在寻找一个晦涩的或真正新的软件包(所以出血性的东西不会工作,因为PPM通常落后于CPAN)。 虽然比CPAN模块更容易安装,但是PPM是专门为Windows创build的,因此一些CPAN模块将无法工作(因为他们使用的是Unix特有的东西)。

我以前都用过,而且在大多数情况下似乎都可以。 但是我倾向于草莓Perl,因为环境更接近Unix,所以没有太多的不兼容性。 另一方面,ActivePerl是为Windows编写的,所以它可以很好的与Windows一起工作。

另一个select是安装Cygwin附带的Cygwin和Perl。 我之前做过这件事,而且工作得很好。 你也可以访问CPAN。

select你认为最适合你的东西。

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

AcitveState / PPM优点:如果你的版本有一个PPM,它将会工作,而且简单。

ActiveState / PPM缺点:并不总是一个PPM,或者至less不总是一个最新的。

草莓/ CPAN优点:你的仓库是CPAN,而不是第三方维护的一堆二进制文件。 在作者发布它们的时刻,您将拥有新的模块,并且您正在使用作者所期望的构build系统。

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

草莓/ CPAN缓解因素:草莓开发者真的很难确保一切顺利,尽可能多的CPAN可供您使用,并且当模块被识别为故障点(难以在Windows上构build,但是需要为其他stream行的模块/应用程序),他们将与作者合作,让模块得到修复,以便每个人都可以安装它,或者在特殊情况下,应用自己的修正和捆绑草莓或草莓专业模块。

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

草莓在其方法上更加平庸,我一直在使用草莓时一直很开心。

然而,ActiveState由于其定制的包pipe理系统,在我使用它的时候已经非常痛苦了。 这在您处于企业环境中时很重要。

国际海事组织,草莓更好。 /主观

两者都很棒,工作也一样。 草莓以能够构buildXS模块而闻名,但是如果您只安装Visual Studio SDK(或免费的快速版本),您也可以使用ActiveState来完成此任务。

对于这个问题,如果你有权访问Visual Studio,你可以做的最好的做法是从源代码构buildPerl(如果你阅读自述文件,这很容易)并且使用相同的编译器来构build你的模块。 这实际上比混合使用编译器/模块更好。

有一件事你必须考虑,如果使用ActiveState:如果你安装在面对互联网的服务器上,那么你需要购买营业执照(罗恩Warshawsky指出$ 1000 /年/服务器)。 这并不意味着它不会工作,只是作为EULA中的一个要求而已。 许多人不知道这一点,并没有购买相应的许可证安装在面向互联网的服务器上。

在一个完美的世界里,我会selectdebian-interix或pkgsrc-interix perl(不是Interix / SFU / SUA附带的古老的Perl),因为它提供了最像POSIX / UNIX的系统(包括真正的写时拷贝fork,而不是Cygwin的windows fork仿真)。 我已经在过去(这是安装在Windows机器上),但不是每个人都可以安装SFU / SUA只是为了Perl。 在这种情况下,我build议使用ActivePerl,主要是为了让用户熟悉界面(PPMgraphics界面与CPAN)以及与Perl Dev Kit(PerlExe,PerlNET,PerlSvc和朋友)的整合。 此外,与其他人所回答的相反,如果需要,可以使用ActivePerl(但确实需要通过PPM安装必要的开发工具)使用CPAN(和CPAN shell)。

ActivePerl从社区版排除大量模块,并在Windows下构build它们是一件非常痛苦的事情。

另外,他们会让你免费下载和使用最新版本。 其他一切,如访问5.8.8或早期版本的模块是商业($ 1000 /年/服务器)或企业版(每报价)。

如果你devise你的应用程序的权利,你select什么应该没有关系。

重要的一点可能是每个模块可以提供或不提供的各种模块的版本。 PPM软件包可能会落后于CPAN版本,但是如果您不小心,CPAN版本的最新版本可能会破坏向后兼容性。 此外,有时候会有PPM软件包用于在草莓下不能正确构build的东西(尽pipe这意味着模块的devise往往不是很好)。

只要知道你使用的任何模块的版本,你应该没问题,不pipe你select哪一个。

如果您使用box.com客户端来同步文件,那么您可能希望(至less在此时)使用Strawberry Perl。 ppm可执行文件与其中一个Box.com DLL冲突。 gui根本无法启动(产生“perl … interpreter已停止工作”的Windows消息)。在安装Box.com客户端时,我也使用命令行版本的ppm发生间歇性问题。

如果Larry Wall使用Strawberry Perl,那么应该如此。 ;)