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;
}
####
eval { blah() or die "failed"; };
if ($@){
...
}
####
if ($@ =~ /timeout/){
...
}