トップ «前の日記(■2005-11-14) 最新 次の日記(■2005-11-22)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|
2023|03|
2024|02|07|10|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2005-11-16

* [Perl][メモ] CGI::CarpのステータスB!

  CGI::CarpのfatalsToBrowserがステータスに500を返さないというお話。なるほど…… あくまでもCGI::CarpのfatalsToBrowserに拘る場合の強引な解決方法を思案。

 use CGI::Carp qw(fatalsToBrowser set_message);
 
 BEGIN {
   no warnings 'redefine';
   my $org_fatalsToBrowser
          = \&CGI::Carp::fatalsToBrowser;
   *CGI::Carp::fatalsToBrowser = sub {
     require CGI;
     local $ENV{MOD_PERL} = 1;
     print CGI->new->header(-status => 500);
     &$org_fatalsToBrowser(@_);
   };
 
   sub handle_errors {
     my ($msg) = @_;
     print <<END;
 <h1>Software error:</h1>
 <pre>$msg</pre>
 END
   }
   set_message(\&handle_errors);
 }

  通常、運用時にfatalsToBrowserを素で使うことはないでしょうから冗談ということで。

[]