pipe my $read, my $write; if (my $pid = fork()) { # monitor process close $write; read $read and update progress } else { close $read; while (1) { do stuff; print $write "status"; } }