^^^ This seems to do what I want to do. perldoc -f die seems to think I should only need the "die @_ if $^S", but I've found the line before it with "die @_ if !defined($^S)" is also neccesary, at least in this example. According to perldoc perlvar:#!/usr/bin/perl -w use strict; use warnings; BEGIN { $SIG{__DIE__} = sub { die @_ if !defined($^S); die @_ if $^S; print "SIG{__DIE__} handling the following error: " . $_[0]; exit(99); }; } use Storable; print "This script sucks\n"; die "I will now die because I suck";
$^S Current state of the interpreter.
$^S State
--------- -------------------
undef Parsing module/eval
true (1) Executing an eval
false (0) Otherwise
The first state may happen in $SIG{__DIE__} and $SIG{__WARN__} handlers.
In my case, it seems only the "0" case is what I want to be handling directly. In reply to Re^3: SIG{__WARN__}, Storable, and Log::Agent...
by ph713
in thread SIG{__DIE__}, Storable, and Log::Agent...
by ph713
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |