my $child = fork; if (!$child) { exec('someprogram.exe'); exit; } else { while (child_process_still_running()) { sleep 1; system('kill -USR1 $child'); #signal child get_new_std_out_lines_child_has_printed_inresponse_to_signal(); } }