local $SIG{ALRM} = sub { die("TIMED OUT") }; eval { alarm(10); #set our alarm for 10 seconds @results = `$cmd`; alarm(0); } if($@ =~ /TIMED OUT/) { #do defaults }