gpt4 book ai didi

perl - 如何从库中查找和删除重复的 Perl 模块?

转载 作者:行者123 更新时间:2023-12-04 15:26:11 26 4
gpt4 key购买 nike

我一直在使用 Module::Build 来管理我的模块安装,我发现我在库的不同部分有给定模块的重复版本:

./site_perl/5.14.2/i686-linux/site_perl/Support/Dump.pm
./site_perl/5.14.2/Support/Dump.pm

这对我来说是一个问题,因为我不能确定它们会保持同步。

有没有办法查找和删除此类重复文件?或者这些是因为我做了什么,我可以控制吗?

最佳答案

这可能是因为您从模块中添加/删除了 XS 代码。如果您添加了 XS 代码,第一个是当前的(好),如果您删除了所有 XS 代码,第二个是当前的(不好)。这不太可能是一个长期问题,因此可能不需要长期解决方案。

如果你运行 perl -V ,您会注意到@INC 中每条路径的顺序。 Perl 可能会在正常目录之前拥有您的 i686-linux/site_perl 目录,因此您的 XS 版本将被加载,而另一个将被忽略。它们是否同步并不重要,只会加载一个。因此,重要的是,如果您删除所有 XS 代码使其成为纯 perl 模块,则必须从树中删除 XS 版本。这很少见——一旦你开始做 XS,通常它就不会被删除。即使是双重生命模块(List::MoreUtils)也保留了它们的 XS 代码,并且只有一种方法可以确定它是否已安装,并且有一种方法可以禁用 XS 代码以进行测试。但他们实际上并没有摆脱 XS 代码。

很可能,您添加了 XS 代码,因此它不再是纯 perl,一切都会好起来的。

关于perl - 如何从库中查找和删除重复的 Perl 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729386/

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