Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^4: Capture STDOUT and send to screen with open3 (updated)

by computergeek (Novice)
on Mar 05, 2018 at 18:10 UTC ( [id://1210367]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Capture STDOUT and send to screen with open3 (updated)
in thread Capture STDOUT and send to screen with open3

I am sorry, I am trying it and it hangs. Here is what I am executing: What am I doing wrong? Also, will this print a line real time from cat as if output were not being captured?

my @cat = qw( cat ); run \@cat, '<pipe', \*PIPE, '>', new_chunker("\n"), sub { my $line = shift; print $line; push @out, $line; }, '2>', new_chunker("\n"), sub { my $line = shift; print STDERR $line; push @err, $line; } or die $?; print PIPE "some input\n"; close PIPE; print "out @out"; print "err @err";

Replies are listed 'Best First'.
Re^5: Capture STDOUT and send to screen with open3
by haukex (Archbishop) on Mar 05, 2018 at 18:20 UTC

    IPC::Run's run basically runs a command to completion, if you want interactive communication with the subprocess, as your code example appears to be showing, you'll want its start/pump/finish interface. The module's documentation is a bit long, but it is a powerful module, so I recommend reading up on it. Also, a more detailed description of what this subprocess is and what you want to communicate to it would be helpful.

    Otherwise, if all you want to do is send a single string to its STDIN, then I think you should just be able to do run \@cmd, '<', \$data, ....

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1210367]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (3)
As of 2024-04-24 19:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found