##
$SIG{__DIE__} = \&my_death;
sub my_death {
warn @_; #propagate the message via warn()
POSIX::_exit(42); #exit with code 42
}
####
sub main {
... main program logic ...
}
eval { main() };
if ($@) {
... handle any fatal errors ...
}
####
eval { main() };
if ($@) {
warn "FATAL: $@"; ## all I want to do is warn about the fatal.
}
END {
close_all_files();
issue_done_to_server();
}