みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

perl でrequireされたファイル自身のフルファイル名を取得する

perl でrequireされたファイル自身のフルファイル名を取得する方法を教えてください

__FILE__ だとパス情報がありません。

また 起動したスクリプトではないので
$ENV["SCRIPT_FILENAME"] , $0
では、取得できません。

どこに格納されているのでしょうか?
%INCでは、無理ですし、@INCを使う方法では、信憑性にかけます

requireするときにパスをグローバル変数に代入せずに
どうしてもrequireされたファイル自身で
確実に正確な同じフォルダ名を取得する必要があるのでお願いします。

(※phpでは、__FILE__でフルパスで返ってくるので私の探し方が悪いだけだと思っています)

perlでの取得方法の情報を
お手数ですがよろしくお願いします

投稿日時 - 2010-10-25 12:10:34

QNo.6274122

困ってます

質問者が選んだベストアンサー

use Cwd 'abs_path';
print abs_path(__FILE__);

または

use File::Spec;
print File::Spec->rel2abs(__FILE__);

どちらも標準モジュールのようなので、すぐ利用可かと。

投稿日時 - 2010-10-25 21:54:14

お礼

ネストなどのテストをして大丈夫でした。

目的のものでした
ありがとうございました。

投稿日時 - 2010-10-27 11:28:18

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ちょっと自信がないのですが、
__FILE__には本当にパスが入ってませんか?
確かそれで合ってたように思うのですが。
また「パス情報」とはスクリプトファイルのパスということでよろしいですか?

また、次のようにFindBinを使うやり方はどうでしょうか。
use FindBin ();
print $FindBin::Script;
ただこの方法では自分の環境だと相対パスが保存されていました。

投稿日時 - 2010-10-25 15:58:09

お礼

ご回答ありがとうございます

今回探していたのものとは、違いました。

投稿日時 - 2010-10-27 11:26:57

あなたにオススメの質問