パスの追加 use-lib (@INC変更)
back
use lib "/aaa/bbb/ccc";
これで、/aaa/bbb/ccc 以下にある .pm を使用可能
ただし、変数に格納されているパスを指定しても動かない
use lib $path_modules; <= N.G.
これは、use によるモジュールのロードがコンパイル時に行われ、
実行時に処理される $path_modules 変数がコンパイル時には undef になっているから。
$path_modules にどーしても代入した上で lib use したいなら、
BEGIN ブロックでおこなう
BEGIN {
$path_modules = "........";
use lib $path_modules;
}
つーかこんなことしなくても、変更されないパスならそのまま書けばよいし、
実行ファイルからの相対パスを(実行ファイルのパスに関係なく)常に指定したいなら、
次のようにすれば OK
use FindBin qw($Bin);
use lib $Bin;
実行ファイル以下に lib とかのサブディレクトリを使っているなら、適時修正
use lib $Bin."/lib";
back