On Thu, 16 Aug 2001, Sam Peterson wrote:
> Set $| =1 at the beginning of the program.
>
> It forces flushing of the output buffers.
But it doesn't prevent the backticks from collecting all of the output
from the script in RAM before passing it to the output buffers.
Try this:
open( SCRIPTINPUT, "|ksh_script" ) or die "could not start ksh_script";
printf STDOUT SCRIPTINPUT;
close SCRIPTINPUT;
> At 04:42 PM 8/16/2001 -0500, Jay Strauss wrote:
>
> >Fancy this, I gotta new problem
> >
> >I'm calling a ksh script within my perl program. The ksh script basically
> >dumps a ton (multiple Gb) of data to stdout. I'd like my perl program to
> >dump it to stdout too. But if I do a:
> >
> >print `ksh_script`;
> >
> >The data doesn't get written to stdout till the ksh script completes, as
> >opposed to if I execute the ksh
> >script from the cmd line like:
> >
> ># ksh_script > out
> >
> >If I call the ksh script within my perl program I figure if I have to dump
> >multiple Gb of data I'll run out of memory long before the ksh script
> >completes. Is there a different way to call the ksh script from within perl
> >so that the output of the ksh goes straight to stdout? So that I can do:
> >
> ># perl_script > out
> >
> >without the memory requirements
> >
> >Thanks
> >Jay
> >
> >Jay Strauss
> >[EMAIL PROTECTED]
> >
> >
> >_________________________________________________________
> >Do You Yahoo!?
> >Get your free @yahoo.com address at http://mail.yahoo.com
>
> Sam Peterson
> Hart Interdisciplinary Programs
> 2201 Hart Hall
> University of California, Davis
> One Shields Avenue
> Davis, California 95616
> (530) 752-9332
>
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<[EMAIL PROTECTED]> Basics: ##.#. ##.#. Live Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...2k
---------------------------------------------------------------------------