#!/usr/bin/perl use strict; use warnings; print "Starting external program. Waiting for input.\n"; open my $fh, "-|", "while true; do date; sleep 1; done"; my @lines; while(defined(my $line = <$fh>)) { chomp $line; push @lines, $line; if(@lines >= 20) { my $howmuch = @lines; print "Read '$howmuch' lines from external program.\n"; print "Stats are...calc calc calc.\n"; print "The following lines where read:\n"; print map { "$_\n"; } splice @lines; print "Going to sleep.\n"; sleep 20; } }