#!/usr/bin/perl eval { local $SIG{ALRM} = sub { die "Timed Out"; }; alarm 3; sleep 1 while 1; alarm 0; }; alarm 0; if ($@ =~ /Timed Out/i) { print "Timed-Out waiting for infinite loop to finish\n"; }