実行されている Perl スクリプトの絶対パスを取得する方法が知りたいです。


__FILE__ でファイル名を取得できることは知っているのですが、取得したファイル名を探す処理を入れるべきなのか、CPAN のモジュールですぐに解決できるのか見当がつきません。
ググッては見たのですが、該当する結果が得られませんでした。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2009/01/09 20:29:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ryuzee No.2

回答回数19ベストアンサー獲得回数1

ポイント40pt

CPANのモジュールにFindBinというのがあります。

http://search.cpan.org/~nwclark/perl-5.8.6/lib/FindBin.pm

標準でインストールされているはずです。


use FindBin;

print $FindBin::Bin . "\n\n";

→モジュールの配置されているパスを表示


print $FindBin::Script . "\n\n";

→モジュールのファイル名を表示


print $FindBin::RealBin . "\n\n";

→モジュールがシンボリックリンクの場合、実パスを表示


print $FindBin::RealScript . "\n\n";

→モジュールがシンボリックリンクの場合の実ファイル名を表示

id:littlebangkok

http://d.hatena.ne.jp/minesouta/20070818/p1

こちらのモジュールもシンプルでいいですね。

動作確認をしたいと思います。

動作確認をしたところ、上記モジュールを利用すれば、私が想定している

パスを返してくれました。

非常に助かりました。

2009/01/09 20:29:07

その他の回答1件)

id:munyaX No.1

回答回数120ベストアンサー獲得回数24

ポイント30pt

カレントディレクトリを調べる感じでどうでしょう?

CPANにモジュールがあります。

http://www.perl-cgi.net/sample/cwd/

id:littlebangkok

シンプルでとてもいいです。

cron でスクリプトの稼動を想定しているのですが、cron で実行させたときに

どういう値を返すのか確認したいと思います。

----

確認をしたところ、getcwd は実行者(cron)がいる現在のディレクトリを返すんですね。

とはいえ、勉強になりました。

ありがとうございます。

2009/01/09 20:28:23
id:ryuzee No.2

回答回数19ベストアンサー獲得回数1ここでベストアンサー

ポイント40pt

CPANのモジュールにFindBinというのがあります。

http://search.cpan.org/~nwclark/perl-5.8.6/lib/FindBin.pm

標準でインストールされているはずです。


use FindBin;

print $FindBin::Bin . "\n\n";

→モジュールの配置されているパスを表示


print $FindBin::Script . "\n\n";

→モジュールのファイル名を表示


print $FindBin::RealBin . "\n\n";

→モジュールがシンボリックリンクの場合、実パスを表示


print $FindBin::RealScript . "\n\n";

→モジュールがシンボリックリンクの場合の実ファイル名を表示

id:littlebangkok

http://d.hatena.ne.jp/minesouta/20070818/p1

こちらのモジュールもシンプルでいいですね。

動作確認をしたいと思います。

動作確認をしたところ、上記モジュールを利用すれば、私が想定している

パスを返してくれました。

非常に助かりました。

2009/01/09 20:29:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません