モジュール内でエラーメッセージを出力する際にはよく、Carp モジュールの carp や croak が用いられますが、これらのメソッドは通常ではスタックトレースを伴いません。しかし、デバッグの最中でこのメッセージはどこで出力されたのか、どういうコールスタックを経て出力されたのかを知りたい場合があります。
これらの要望に答えるために、Carp モジュールには carp や croak に対し、スタックトレースを伴わせるように命令するオプションが備えられています。方法は単純で
- Carp モジュールに verbose を渡す
perl -MCarp=verbose hoge.pl
- $Carp::Verbose に真値をセットする
のいずれかで OK です。
ref: Carp - warn of errors (from perspective of caller) - metacpan.org