这个问题是跟进: What's the search order in perl's include path when a module is loaded张贴了一段时间后,但仍未得到答复。包含perl模块时的搜索顺序问题
我有安装在两个单独的文件夹IO模块2级的版本(1.22和1.25):
/some_path/lib/perl5/x86_64-linux-thread-multi/
(对于IO.pm版本1.25) 和 /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/
(对于IO.pm版本1.22)
在@INC列表看起来像:
/some_path/lib/perl5/x86_64-linux-thread-multi/
/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/
/usr/lib/perl5/site_perl/5.8.8/
/usr/lib/perl5/site_perl/
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/
/usr/lib/perl5/vendor_perl/5.8.8/
/usr/lib/perl5/vendor_perl/
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/
/usr/lib/perl5/5.8.8/
.
当我尝试perl -e 'use IO'
,PERL返回以下错误信息:
IO对象版本1.22与/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm第253行的引导程序参数1.25不匹配。 这表明使用的是IO模块版本1.22,而不是IO版本1.25,即使应该首先定位IO版本1.25。
任何想法为什么这是?
仍然没有得到解决?链接的问题有两个非常好的答案:从@INC的最低索引到最高的Perl搜索,直到找到所需的文件。 – ikegami 2013-03-05 19:18:36
抱歉,我的意思是提供给问题的答案并未解决我的特定问题。 – mhursin 2013-03-06 08:06:15