0

この質問はフォローアップです: モジュールがロードされたときのperlのインクルードパスでの検索順序は何ですか?しばらく前に投稿されましたが、それは未回答のままでした。

モジュール IO の 2 つのバージョン (1.22 と 1.25) が 2 つの別々のフォルダーにインストールされています。

/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 がブートストラップ パラメータ 1.25 と一致しません。 IO バージョン 1.25 を最初に配置する必要がありますが、IO モジュール バージョン 1.25 の代わりに IO モジュール バージョン 1.22 が使用されます。

それはなぜですか?

4

1 に答える 1

2

IO のインストールが不適切です。

perl意図したとおりに1.25 をIO.pm見つけていますが、最初に見つかったのは 1.22 です ( ?)/some_path/lib/perl5/x86_64-linux-thread-multi/auto/IO/IO.so/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/

于 2013-03-05T17:34:13.637 に答える