my $pid; local $SIG{ALRM} = sub { kill 9, $pid; die "Timeout\n"; }; $pid = fork; eval { alarm $timeout; $result = `$solver $file`; waitpid($pid, 0); }; alarm 0;