in reply to seeking eval failures

It is possible, but not easily, and not definitively. If you die with an object (v.5.6+) that is overloaded to return undef in the appropriate contexts e.g
## warning - segfaults in 5.6.1 { package UndefError; use overload ( q[""] => sub { undef }, bool => sub { undef }, '0+' => sub { undef }, fallback => 1 ); sub new { bless [] } } eval { die UndefError->new; }; warn "ack - $@" if $@; warn "object error - $@" if ref $@; __output__ object error - at - line 19.
So it can be emulated in some respects, but only through very convoluted means :)
HTH

_________
broquaint