CGI::Carp
CGI エラーメッセージハンドラ
use CGI::Carp;
warn, carp, cluck, die, croak,
confessメッセージをWebサーバのエラーログに記録する。
CGI環境におけるCarpの代替モジュールとして機能する。
warn:警告表示
carp:呼び出し元の観点からの警告表示
cluck:スタックトレース付き警告表示
die:エラー表示
croak:呼び出し元の観点からのエラー表示
confess:スタックトレース付きエラー表示
use CGI::Carp qw(fatalsToBrowser);
上記+fatal エラーメッセージや、die, croak, confessメッセージをブラウザに表示する。
use CGI::Carp qw(fatalsToBrowser set_message);
上記+ブラウザに表示するメッセージをカスタマイズする。
カスタマイズハンドラは、下記の様に記述する。
BEGIN { sub handle_error { my $msg = shift; [[ ここで$msgを加工する ]] print "<p>$msg</p>\\n"; } set_message(\&handle_error); }
BEGINブロックは、読み込まれた直後にコンパイルされ実行される。この為、このBEGINブロック以降に発生するコンパイルエラーもhandle_error関数に渡される。
$msgはHTMLエスケープされた文字列(perlが出力したエラーメッセージ)が入力される。ブラウザには、type='text/html'で出力されるので、加工後の出力もHTMLエースケープが必要。
その他、エラーメッセージをhttpdのerror_logではなく、プライベートログファイルに出力させる事もできる。
ほとんど使わないと思われるので省略。