Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^3: Communicate with child process via stdin, stdout

by quester (Vicar)
on Nov 20, 2011 at 06:41 UTC ( #939035=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Communicate with child process via stdin, stdout
in thread Communicate with child process via stdin, stdout

I don't have a copy of DCE-Whisperer to test with, so take this with a grain of salt...

If I change the child process to /bin/cat, I can get the script to run if I uncomment the print $in AND change it to

print $in "PING\n";

which works because (in this case) it flushes the buffer for $in. You could also flush the $in buffer with

$|=1;

depending on the child process - for example cat doesn't work without a "\n".

However, you may be running into buffering issues with DCE-Whisperer as well. As the documentation for IPC::Open2 mentions, "The big problem with this approach [that is, IPC::Open2 itself] is that if you don't have control over source code being run in the child process, you can't control what it does with pipe buffering.... The IO::Pty and Expect modules from CPAN can help with this, as they provide a real tty (well, a pseudo-tty, actually), which gets you back to line buffering in the invoked command again."


Comment on Re^3: Communicate with child process via stdin, stdout
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (11)
As of 2015-07-08 04:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls