gpt4 book ai didi

perl - 不同版本的 Perl 是否需要不同的 CPAN 模块安装?

转载 作者:行者123 更新时间:2023-12-03 02:16:40 25 4
gpt4 key购买 nike

我们有一个服务器场,正在慢慢迁移到新版本的 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 可能会在主要版本之间发生变化,因此即使您将库复制到适当的目录中,它们也可能会或可能不会工作,具体取决于它们使用的功能以及两个版本的不同程度珀尔是。 5.8 和 5.12 之间存在显着差异,可能会破坏几乎所有代码。

不过,这根本不适用于纯 Perl 模块;除了极少数异常(exception),它们可以自由复制。这只是 XS 代码的问题。

关于perl - 不同版本的 Perl 是否需要不同的 CPAN 模块安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com