simo_mon has asked for the wisdom of the Perl Monks concerning the following question:

dear monks, I have written a couple of scripts to launch largeish programs that i use at work,
some web stuff, some system stuff and some virtual environment stuff... the way i normally do it is something like...

my $launchDir = "/usr/launchDir"; my @progRes = `programOfInterest`; my $num =0; my $i; foreach $i (@progRes) { print "LINE : ".$num." Val ".$i; $num++; } # leaves the terminal open my $pause = <STDIN>;

which prints the result line by line but AFTER execution...
as some of these programs i am running are large and sometimes fail.. it would be really great if i could somehow view the results at execution time.
as the above method executes and then returns the reults in the variable ?
any help would be appreciated

Replies are listed 'Best First'.
Re: output external program results at runtime
by ikegami (Patriarch) on Feb 08, 2011 at 21:59 UTC
    open(my $FROM_CHLD, '-|', 'programOfInterest') or die; while (<$FROM_CHLD>) { print("LINE: $. Val $_"); }

    The child may decide to buffer its output. The child may be convinced not to buffer its output if you use a pseudo tty.