異常終了した際にエラーメッセージを表示したい - Perl,CGI

実行している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;

もちろんエラーログを読める権限が必要なので実行の際はご確認を。