不同版本的Perl需要不同的CPAN模块安装?

前端之家收集整理的这篇文章主要介绍了不同版本的Perl需要不同的CPAN模块安装?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个服务器场,我们正在缓慢迁移到新版本的Perl(5.12.1).我们目前正在运行5.8.5.操作系统也将从RedHat 4升级到RedHat 5,但RedHat 5仍然在Perl 5.8.8上.因此,在我们的源代码树中有一段时间,我们将支持两个版本的Perl.

我被告知要将新版本的Perl安装到源代码树中,以及我们当前使用的所有CPAN模块.我实际上被告知要用正确版本的Perl“编译”模块.我感到困惑对于不同版本的Perl,某些模块是否实际配置不同?考虑到这一点,我想我应该在我们的树中为Perl的每个版本配置CPAN目录?

关于这种情况的任何信息或“陷阱”?

编辑:作为一个额外的问题,同样的cpan目录(由〜/ .cpan指向)是否用于两个树,或者当我在不同的树(安装模块)工作时,我应该链接到不同的目录?

解决方法

使用XS(编译的C代码,动态加载)的任何Perl模块通常只能使用与它们一起编译的相同版本的perl.这有两个原因:

原因是默认情况下,它们被安装到包含perl版本号的目录中,并且任何其他版本的perl将不会查看该目录.

原因二是因为Perl API可以在主要版本之间更改,因此即使要将库复制到相应的目录中,它们可能或可能无法正常工作,具体取决于它们使用的功能以及perl的两个版本的不同. 5.8和5.12之间有显着的差异,可能会打破几乎所有的代码.

但是,这完全不适用于纯Perl模块;它们可以自由地复制,只有很少的例外.这只是XS代码的问题.

猜你在找的Perl相关文章