プロが教えるわが家の防犯対策術!

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

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

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

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

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

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

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

A 回答 (2件)

use Cwd 'abs_path';


print abs_path(__FILE__);

または

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

どちらも標準モジュールのようなので、すぐ利用可かと。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2010/10/27 11:28

ちょっと自信がないのですが、


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

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

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

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

お礼日時:2010/10/27 11:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!