perl でスタックトレース
perl には confess というサブルーチンがあります。
confess はスタックトレースを表示し終了するサブルーチンです。confess の引数に終了した理由を記述するだけで、ソースコードの可読性が向上するだけでなく、障害時のトラブルシュートが容易になります。
#!perl use strict; use warnings; use Carp; sub foo { confess "something wrong"; print "this line will not be executed.\n" } sub bar { foo; } sub baz { bar; } baz; exit;
実行結果は次の通り。
$ perl stacktrace.pl something wrong at stacktrace.pl line 7 main::foo() called at stacktrace.pl line 11 main::bar() called at stacktrace.pl line 14 main::baz() called at stacktrace.pl line 17 $