use warnings; use strict; my $ok = eval { blah() or die "damn thing failed!"; 1; }; if ($ok){ print "success\n"; } else { print "failed, doing something else\n"; } sub blah { # simulate a fail return 0; }