# sub_program
use strict;
use warnings;
{ my $fh = select STDOUT; # making STDOUT "hot" (no IO buffering)
$| = 1;
select $fh;
}
for my $i (0..100) {
print "$i \n";
sleep 3;
}
####
# main program
use strict;
use warnings;
system ("perl sub_program.pl > file.txt &");
my $last_line;
for my $i (0..100) {
sleep 10;
local @ARGV = ("file.txt");
$last_line = $_ while <>;
print "iteration $i : $last_line";
}
####
$ perl test_sub.pl
iteration 0 : 3
iteration 1 : 6
iteration 2 : 9
iteration 3 : 13
iteration 4 : 16
...