{ # scope the `local` local $@; eval { do_something_that_might_die(); 1; } or do { my $error = $@; ## ?? No need for || 'Zombie error' ?? deal_w($error) || die; } }