Hatena::ブログ(Diary)

あじゃぱー

2007-08-18 FindBin

[]FindBin 実行パスを見つける

凡例 1

#! perl
#C:\code\test.pl
use FindBin qw/$Bin $Script/;

print $Bin, "\n"; #スクリプトへのパス  C:\code
print $Script, "\n"; #スクリプト名 test.pl

凡例 2

#! perl
#C:\code\test.pl
use FindBin;

print $FindBin::Bin, "\n"; #スクリプトへのパス  C:\code
print $FindBin::Script, "\n"; #スクリプト名 test.pl

libモジュールを使ってスクリプトの1つ下のlibディレクトリをサーチパスに追加

#! perl
use FindBin;
use lib "$FindBin::Bin/lib/";

print (join "\n", @INC);

注意点

mod_perlなど持続するPerl環境下で、2つのモジュールがそれぞれ違うディレクトリからFindBinを使うとうまく動かないかも。なのでCPANに登録しようと思っているモジュールではFindBinは避ける。


(参考)

スクリプトパスの取得@MASのページ

FindBin module を使って use lib 記述をシンプルにする@iandeth.

スクリプトのパス情報などの取得 (module)FindBin@ぺるりもめ