use warnings; use strict; use IPC::Run qw/ harness timer /; my @cmd = ( 'perl','-le','sleep 60; print "Done!"' ); my $h = harness \@cmd, \undef, \my $out, \my $err, ( my $t = timer 10 ); my $startt = time; $h->start; printf "%2d started\n", time-$startt; while ( $h->pumpable ) { $t->start; $h->pump; printf "%2d pumped\n", time-$startt; } $h->finish; printf "%2d finished\n", time-$startt; print "stdout: <<$out>>\nstderr: <<$err>>\n";