use strict; use CGI::Carp qw/fatalsToBrowser set_message/; BEGIN { sub die_nice { # this will intercept any fatals my $err = shift; print "\n
\n$err\n"; print "[script-specific error/dump info goes here]\n"; print "\n\n"; warningsToBrowser(1); } set_message(\&die_nice); } die('[this is the message passed to die]'); ##
##
[this is the message passed to die] at /home/evan/dietest.cgi line 18.
####
sub die_nice {
my $err = shift;
$err =~ s/ at \S+ line \d+//g
print "\n\nCustom CGI Error
\n";
print "$err
\n";
print "[script-specific error/dump info goes here]\n";
print "\n\n";
warningsToBrowser(1);
}