這個問題是跟進: 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