http://qs1969.pair.com?node_id=755734


in reply to Re: Why <c>eval {...};if ($@) { die $@ } else { ...</c> ???
in thread Why <c>eval {...};if ($@) { die $@ } else { ...</c> ???

Note that anything that happens to alter $SIG{__DIE__} would break that since the exception string wouldn't be "alarm\n" anymore.

I've done that myself numerous times when adding a use Carp::Always; for debugging purposes, thereby accidentally the whole test run.

If you want to be extra super safe, you should do local $SIG{__DIE__}; in the block as well.

/J