#--------- 1 ------------ eval { foo() }; if ($@){ # Houston, we have a problem my $error = $@; } else { # everythings ok. } sub foo { &bar; } sub bar { if ($negative) { die('bar is negative'); } return(); }