* Michael G Schwern <[EMAIL PROTECTED]> [2007-02-27 06:25]:
> $SIG{__DIE__} = sub {
> # We don't want to muck with death in an eval, but $^S isn't
> # totally reliable. 5.005_03 and 5.6.1 both do the wrong thing
> # with it. Instead, we use caller. This also means it runs under
> # 5.004!
> my $in_eval = 0;
> for( my $stack = 1; my $sub = (CORE::caller($stack))[3]; $stack++ ) {
> $in_eval = 1 if $sub =~ /^\(eval\)/;
> }
> ...
> };
>
> That's how you do it "right" and maintain any sort of backwards compatibility.
Owh goodnessssss arrrrragh *twitch*
Together with the contortions required to safely examine $@ after
an eval I’m getting tempted to put Unbreak::Eval on the CPAN.
--
*AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}
&Just->another->Perl->hack;
#Aristotle