my $foo = eval { my $bar = baz(); if ($@) { die "baz failed!\n"; } }; die $@ if $@; sub baz { eval "1 = 2"; } __END__ baz failed! #### Can't modify constant item in scalar assignment at (eval 1) line 1, at EOF #### sub baz { my $result = eval "1 = 2"; die $@ if $@; $result; }