5部 関数リファレンス

caller

caller
caller EXPR



callerは、callerを実行したファンクションの呼び出し元情報を返します。引数なしで呼び出すと、スカラコンテキストではパッケージ名のみ、リストコンテキストでは実行中サブルーチンの呼び出し元のパッケージ名、ファイル名、行番号を返します。

callerの使い方

($package, $filename, $line) = caller;

callerに引数を指定

引数EXPRに数値を指定すると、その指定した数値分だけ前の情報を返します(0だと直前の情報)。
また、引数がある場合は、より詳細な情報が返されます。

$i = 0;
while ( ($pack, $file, $line, $subname, $hasargs, $wantarray, 
$evaltext, $is_require) = caller( $i++) ){
...
} 

DBパッケージ内から呼び出された場合には、callerはさらに詳細な情報を返します。サブルーチンが起動されたときの引数を変数@DB::argsに設定します。

関連記事