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."
In reply to Re^3: Communicate with child process via stdin, stdout
by quester
in thread Communicate with child process via stdin, stdout
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |