$|=1; $TimeOut = 100; $StopTime = time + $TimeOut; if($cmd =~ /INFINITE/i){ unless (fork){ $child_pid = $$; eval $cmd; while(1){ sleep(1); if (time >= $StopTime){ print "killing child process $$"; kill -9, $child_pid; } } exit 0; } } else{ eval $cmd; }