http://www.perlmonks.org?node_id=297915


in reply to Re: IPC::Open3 woes
in thread IPC::Open3 woes

Hi,

I've been trying your example, and it works great on linux (perl 5.6.1), but doesn't work on win2k (activestate perl 5.8.0). I've managed to track it down as far as the line where you call can_read, which for some odd reason appears to cause the loop to exit immediately (probably returning undef). Calling count() immediately before the can_read shows that there are still 2 file handles.

I'm a bit stuck on this one, so if anyone has any ideas, they'd be appreciated.

Thanks.

Miah.

Replies are listed 'Best First'.
Re^2: IPC::Open3 woes
by Anonymous Monk on Sep 08, 2004 at 05:50 UTC
    Hi, I am new to open3 and perldoc is too vague to understand
    I am trying a simple unix command to run in open3.
    open3($stdin, $stdout, $stderr, "gcp -vpfR $xrc $dst")


    What i need is -- I want to caputre STDOUT until gcp finishes or there is something on STDERR (on disk full case etc).

    while (<$stdout>) {
    print "$_";
    }
    @stderr = <$stderr>;
    if (@stderr) { dir "ERROR: gcp\n" }


    BUT this is not working -- any suggestions