2012-01-18 8 views
7

私はリモートのボックスにroot権限を持っていませんので、CPANモジュールとlocal :: libの組み合わせを使って、hereと入力してCPANモジュールをボックスのローカルディレクトリにインストールします。 cpanmを使用して、cpanm Module::To::Updateはローカルライブラリにモジュールの最新バージョンをインストールすると仮定します。2つのバージョンのモジュールがインストールされていると、Perlは何をしますか?

明らかに、CPANで私のモジュールをアップグレードするためのルートアクセスは必要ありません。私はそれを試しましたが、アップグレードは慌てて行っていました。しかし、Perlモジュールのどのバージョンが使用されているのかはまだ分かりません。ローカルバージョンかデフォルトのCPANバージョンですか?それとももっと新しい方を使うのですか?

これがperldocまたはStack Overflowに存在する場合は、私もそれを理解できます。両方を検索しようとしましたが、見つけられませんでした=/

答えて

13

@INCを検索すると、最初に見つかったものが使用されます。

+0

ああ。それはかなり簡単です。そしておそらく 'use Module Version'を指定することで、私が手動で望むものを選ぶことができます。ありがとう。 – gempesaw

+4

@dgempesaw - その仮定は間違っているでしょう。特定の場所から特定のモジュールをロードする必要がある場合は、 '@ INC'や'%INC'をハックする必要があります(これを行う方法はたくさんあります。 )。 – mob

+4

@dgempesaw、モジュールのバージョンを見つけるために、Perlはモジュールを実行する必要があります。適切なバージョンでない場合、モジュールは実行されません。 @ mobをご覧ください。 – ikegami

0

あなたは、Linuxでこれを実行することにより、それを確認することができます:

perl -e 'use <module>; print $<module>::VERSION;'

関連する問題