これはあなたが望む正確な解決策ではありませんが、全体的なアイデアは次のようになります。
Cant locate xxxx.pm in @INC path
問題の解決方法
デフォルトでは、perl は標準ライブラリ パスと現在のディレクトリでモジュールを探します。非標準の場所にインストールされているいくつかのモジュールを使用する必要がある場合があります。この状況に対処するには、いくつかの方法があります。
モジュールが@INC
パスを使用しているかどうかを確認するには。
例:
perl -e 'use SOAP::Lite;'
perl -e 'use Error;'
インストール済みのシステムでこれらのコマンドを実行するSOAP::Lite
とError
、Perl は何も出力せずにこれらのコマンドから単純に戻ります。
現在の標準ライブラリ パスを確認するには、次を使用します。
perl -le 'print foreach @INC'
管理者権限を持っている場合、最善の解決策は、システム定義のライブラリ パスのいずれかにモジュールをインストールすることです。
環境変数を設定すると、 PERL5LIB
Perl はPERL5LIB
、標準ライブラリと現在のディレクトリを検索する前に、環境変数で指定されたディレクトリでモジュールを検索します。したがって、この変数を設定してモジュールを見つけることができます。
例:
# For unix like systems
PERL5LIB=/home/path/lib:/usr/another/path/lib; export PERL5LIB
注:ディレクトリは、UNIX ではコロンで、Windows ではセミコロンで区切ります。
コマンドラインからコードを実行している場合は、-I
パラメーターを使用してください。構文は次のようになります。
perl -I /home/path/lib -I /usr/another/lib script.pl
また、スクリプトにライブラリパスを追加することもできます
スクリプトにパスを含めるコマンドは、 use libpath
です。
例:
#!/usr/bin/perl
use lib "/home/path/lib";
use lib "/usr/another/lib";
use MyCustomModule;