# set up alarm... my $pid; $SIG{ALRM} = sub { kill $pid; die "Timed out" }; alarm(5); $pid = open PROG,"/some program|" or die "Can't fork: $!"; my $input = join('',); alarm(0); close PROG;