Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不鼓励在Windows上使用PPM perl模块和草莓perl?_Windows_Perl_Strawberry Perl - Fatal编程技术网

为什么不鼓励在Windows上使用PPM perl模块和草莓perl?

为什么不鼓励在Windows上使用PPM perl模块和草莓perl?,windows,perl,strawberry-perl,Windows,Perl,Strawberry Perl,有人能解释为什么人们会发表这样的评论吗?我在stackoverflow()上看到过几个线程,其中有人这样说。在我看来,PPM只不过是模块的预编译版本,这些模块刚刚被放入perl安装中。假设它们对系统DLL没有外部依赖关系,那么最大的风险是什么 据我所知,PPM在安装特定模块时会进行依赖性检查,并且会安装它所需的任何其他模块。似乎与在Linux发行版上使用.deb或.rpm文件相同 编辑#1: 我发现关于模块Wx,他们展示了如何使用PPM安装Wx for Perl。我试过了,看起来效果不错。我还使

有人能解释为什么人们会发表这样的评论吗?我在stackoverflow()上看到过几个线程,其中有人这样说。在我看来,PPM只不过是模块的预编译版本,这些模块刚刚被放入perl安装中。假设它们对系统DLL没有外部依赖关系,那么最大的风险是什么

据我所知,PPM在安装特定模块时会进行依赖性检查,并且会安装它所需的任何其他模块。似乎与在Linux发行版上使用.deb或.rpm文件相同

编辑#1:

我发现关于模块Wx,他们展示了如何使用PPM安装Wx for Perl。我试过了,看起来效果不错。我还使用PPM和cpanminus混合了CPAN模块,一切看起来都很好。模块,例如:

  • Wx
  • 日期时间
  • DBI
  • 数据:转储程序
  • DBD::AnyData
我的结论是,关于将PPM与草莓Perl混合的风险的评论应该被视为是一种不切实际的东西,可能会在这里或那里给您带来问题,但一般来说,将PPM模块与草莓Perl结合使用是完全正确的。

PPM是由ActiveState创建的(我认为是由ActiveState创建的)这样用户就可以安装带有XS扩展或使用外部库的模块,而不需要C编译器或make,或cpan希望提供的任何unixy功能。他们的一个问题是ActiveState(或某人)必须为您想要的模块以及它使用的所有来自CPAN的模块制作PPM。有时这意味着在他们赶上之前使用旧版本,有时这意味着模块不可用

草莓的优点在于它提供了一个隐藏的unixy环境,cpan可以使用它为您构建模块,这样就不需要打包二进制文件

这意味着您可以通过cpan完成依赖性检查,并且安装更新版本的模块或链接到奇数位置的库变得更加容易(对于某些值的easy),并且无需任何人的努力就可以使用更多的cpan模块

关于使用linux发行版打包系统,也可以提出同样的论点。如果您需要一个与发行版不同步的模块版本,那么您就被卡住了。如果您想使用更为最新的Perl,那么您就被卡住了。Perl在CPAN生态系统中有自己非常好的打包系统,因此如果可以的话,使用它确实是有意义的


同时,有时使用一组提供的二进制软件包更为明智,特别是当您必须推出许多系统时,并且您的Perl安装只是需要跟踪的软件包集合的一小部分。

PPD实际上可以包括外部库(例如,XML::LibXML的软件包包括libxml2),因此,它们可以更简单地安装

PPD已经编译好了,因此可以更快地安装

由于PPD是由其他人准备的,所以它给你的控制力较小。您仅限于可用的模块(谢天谢地,这是可用的大量模块)和可用的版本

我通常不太愿意混合使用两个系统,但在同一版本上同时使用
ppm
cpan
从未遇到过一个问题


只需使用对您方便的方法。

您所说的ActivePerl是完全错误的。自从我使用Perl以来,我就一直在ActivePerl中使用
cpan
。人们甚至不需要再安装编译器,因为
cpan
将自动安装
mingw
。我从ActivePerl 5.6开始,它在2000年之前发布。我不知道草莓Perl是什么时候出现的,但那是很久以前的事了。草莓Perl之前没有的是一个免费的编译器。草莓Perl为Perl带来的是对MinGW的支持,包括草莓Perl和ActivePerl。事实上,现在微软的编译器是免费的,ActivePerl让你可以选择两个免费的编译器我不使用Windows,但我认为主要问题是ActiveState使用一个编译器编译,而草莓将使用另一个编译器。混合使用这两种方法并不一定能奏效。@brian d foy,它们是相容的。我听说SyyPHUS在一个点上遇到了C++位的不兼容,但是我听说MIW现在总是用MS兼容选项调用,这使得偶数位字段兼容。