From "Advanced Perl Programming":
$SIG{ALRM} = \&timed_out;
eval {
alarm(10);
$buf = <>;
alarm(0);
};
if ($@ =~ /BLAH/) {
print "Timed out.";
}
sub timed_out {
die "BLAH"
}
update
this will wait ten seconds for someone to enter something.
the alarm(0) is to reset the timer if something
does get entered (so &timed_out won't get called).
if you want high resolution timing (like 2.35), ye olde dromedary suggests using syscall to call the system timer routines (itimer).
--
ar0n || Just Another Perl Joe