my $okay= eval { ....; 1 }; if( ! $okay ) { warn "Error in eval: $@\n"; } #### sub DESTROY { # local $@; # Uncomment this line to "fix" this eval { # Something that might fail # And failure should just be ignored here }; } my $okay= eval { my $x= bless []; die "The world is coming to an end!!!\n"; 1 }; if( $@ ) { warn "eval failed obviously: $@\n"; } elsif( ! $okay ) { warn "eval failed silently ($@).\n"; } else { warn "eval succeeded.\n"; }