here is online authentication
perl -c filename. PerlTidy.,
. - .
STDERR. HTTPD- STDERR . , , STDOUT, .
carpout(). carpout() , ,
use CGI::Carp qw(carpout);
carpout() , . BEGIN CGI, . :
BEGIN {
use CGI::Carp qw(carpout);
open(LOG, ">>/usr/local/cgi-logs/mycgi-log") or
die("Unable to open mycgi-log: $!\n");
carpout(LOG);
}
carpout() . , carpout() , .
STDERR - CGI:: Carp:: SAVEERR. CGI , script STDOUT STDERR. CGI:: Carp:: SAVEERR, .
carpout() . "" - GLOB:
carpout (* LOG);
:
carpout(LOG);
carpout(main::LOG);
carpout(main'LOG);
carpout(\LOG);
carpout(\'main::LOG');
... and so on
FileHandle .
(, ) , "fatalsToBrowser":
use CGI::Carp qw(fatalsToBrowser);
die "Bad error here";
, . CGI:: Carp HTTP- , , . ( ).
* , fatalsToBrowser mod_perl 2.0 . *
- . , , set_message(). ; use():
use CGI::Carp qw(fatalsToBrowser set_message);
set_message("It not a bug, it a feature!");
, . , - script . :
use CGI::Carp qw(fatalsToBrowser set_message);
BEGIN {
sub handle_errors {
my $msg = shift;
print "<h1>Oh gosh</h1>";
print "<p>Got an error: $msg</p>";
}
set_message(\&handle_errors);
}