This is what I do and what I usually find. Note, however, that
$@ is the
only help you get about what failed.
eval retuns
undef if it
died.
That means you have to parse $@ to find out why it died (useful
if it was a system event that killed it), or you can set a package
or global variable to tell you why it died. I tend to do the latter
whenever possible.
traveler