caller


caller EXPR
caller

 現在実行中のサブルーチンのスタック情報を返します。
 EXPRには数値を指定します。指定した数だけ後戻りしたスタック情報を返します。
 EXPRを省略すると、呼び出し元のパッケージ名、ファイル名、行番号を返します。
 EXPRを指定した場合は省略した場合よりも多くの情報を返します。

サンプルプログラム

print "-----\n";
hoge();
print "-----\n";
fuga();
print "-----\n";

sub hoge {
	my ($package, $filename, $line) = caller;
	printf "%04d %s\n", $line, $filename;
}

sub fuga {
	piyo();
}

sub piyo {
	my $i = 0;
	while (($package, $filename, $line, $subroutine, $hasargs,
	        $wantarray, $evaltext, $is_require, $hints, $bitmask
	       ) = caller($i++)) {
		printf "%04d %s\n", $line, $filename;
	}
}

関連項目

呼び出し元ファイル名と行番号の取得
ファイル名と行番号