Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Handling program output in real time

by Anonymous Monk
on Nov 10, 2003 at 06:31 UTC ( #305803=note: print w/replies, xml ) Need Help??

in reply to Handling program output in real time

You need to set $| = 1; in "".

Replies are listed 'Best First'.
Re: Re: Handling program output in real time
by dvergin (Monsignor) on Nov 10, 2003 at 07:04 UTC
    Yes, that *does* produce the desired behavior. (Interesting that the output from spits out over time at the command line but not when it is piped. Hmmm...)

    Unfortunately the actual program I am trying to track is pilot-xfer which reports its progress incrementally at the command line. And I have no control over its output buffering or whatever. It is what it is. (Thus the name of the stand-in: "blackbox".)

    So where does that leave me in trying to solve my problem in the monitor program (the second one given)?

      IO::Pty may help you (system dependent), if your monitor program can emulate a terminal (tty) the xfer program will give it line buffered output (which is what you want).
        I have stared very hard at the docs for IO::Pty and I can't dope out how to use it here. No doubt this is in part because I don't understand what is meant by: "the creation of a pseudo tty". (The topic is outside my normal field of Perl endeavors.)

        Can you show how IO::Pty could be used to modify the second program in the OP (the program with PIPE1 in it) so that it would process the output from in real time (leaving untouched)?

        Regarding the "system dependent" issue, I am running Linux 7.3 with the 2.4.20-20.7 kernel. I gather from the docs for IO::Tty that I sould be okay in that respect.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://305803]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2018-01-22 18:47 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (235 votes). Check out past polls.