$SIG{ALRM} = { ... code to execute on time-out ... }; alarm 30; # will wait 30 secs before calling your time-out code ... regular code ... alarm 0; # set this if ok to neutralize the alarm