CGIスクリプトのデバッグについてのメモ Web+DBより

CGIスクリプトデバッグ標準エラー出力にprintするのが一般的です。
Apacheならサーバのエラーログに出力されます。

さらに、warnを使うとスクリプトのファイル名や行数も出力されるので便利です。

warn "date is $date";

このスクリプトの出力は、

date is 2002/02/28 at /path/to/date.pl line 5.

となります。(warnの引数の最後に改行を含めないように注意)


Carpモジュールはもっと便利です。
warnの代わりにcarp、die の代わりにcroak を利用するだけで,呼び出し元の情報を出力することができます。
cluck(warn の代わり)、confess(die の代わり)を利用すれば,スタックトレース情報が出力されます。


「どこかのモジュールでwarning が出力されているんだけど,メッセージの内容からは,それがどこ
なのかわからない」というようなときには、

use Carp;
$SIG{__WARN__} = \&Carp::cluck;

としてみるとwarnが実行される際にスタックトレースが表示されるようになり便利です。