caller
caller EXPR
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に設定します。