この質問はフォローアップです: モジュールがロードされたときの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 が使用されます。
それはなぜですか?