実行しているCGIに致命的なエラーが発生した際に通常は「500 Internal Server Error」となり異常終了するところを、エラーメッセージなどを表示したい。CGI::Carpモジュールを利用すれば良い。
使い方は非常にシンプルで、CGI::Carpモジュールをuseする際に'fatalsToBrowser'を渡してやれば良い。
サンプル
;# ;#異常終了時にエラーメッセージを表示する ;# use strict; use CGI::Carp qw(fatalsToBrowser); #-- わざと異常終了 --# die('debug now');
もしくは次のような簡単なCGIをあらかじめ設置、別ウィンドウで実行しておきエラーが発生したら再読み込みといった方法もある。以下はLinux + Apacheの例。
#!/usr/bin/perl ;# ;#エラーログを表示 ;# use strict; #--エラーログの場所--# my $error_log = '/usr/local/apache/logs/error_log'; #--エラーログ表示--# print "Content-type: text/plain\n\n"; print `tail $error_log`; exit;
もちろんエラーログを読める権限が必要なので実行の際はご確認を。