CGI::Carpを使うとDateTimeが動かなくなった
スポンサードリンク
PerlでCGIを作るときに、デバッグ用途でエラーの内容をブラウザなどの吐き出させるのに便利なCGI::Carpというモジュールがあります。これを使うと、DateTimeモジュールが使用できなくなるという不具合に遭遇した。昨日CGI.pmをCPANからインストールした後に発生。それまでは何ともなかった。
まず、正常な場合。
#use CGI::Carp qw(fatalsToBrowser); use DateTime; my $dt = DateTime->now( time_zone=>'local' ); die "$dt";
$ perl test.pl 2009-09-25T13:51:55 at test.pl line 4. $
次に、モジュールアップデート後エラーになってしまう例。
use CGI::Carp qw(fatalsToBrowser); use DateTime; my $dt = DateTime->now( time_zone=>'local' ); die "$dt";
$ perl test.pl Status: 500 Content-type: text/html <h1>Software error:</h1> <pre>HASH(0x145936e0) at /usr/lib/perl5/site_perl/5.8.8/DateTime/TimeZone/Local/Unix.pm line 115. </pre> <p> For help, please send mail to this site's webmaster, giving this error message and the time and date of the error. </p> [Fri Sep 25 13:50:07 2009] test.pl: HASH(0x145936e0) at /usr/lib/perl5/site_perl/5.8.8/DateTime/TimeZone/Local/Unix.pm line 115. $
実運用のCGIにCGI::Carpを残しておくな、ていう話もありますが、いままで問題なかったのに何でなんだろうね。
バージョンについては以下のとおり。
$ perl -MCGI::Carp -e 'print $CGI::Carp::VERSION;' 3.45$ $ $ perl -MDateTime -e 'print $DateTime::VERSION;' 0.50$
環境は、CentOS 5.3のPerl 5.8.8です。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2986
コメントする