eval { local $SIG{ALRM} = sub { die "alarm\n" }; alarm $timeout; &do_program(1, 100); alarm 0; }; if($@) { print "$@
\n"; }