The stupid question is the question not asked | |
PerlMonks |
IPC::Open3 STDIN never sees eof on win32?by Yary (Pilgrim) |
on Dec 05, 2012 at 04:15 UTC ( [id://1007191]=perlquestion: print w/replies, xml ) | Need Help?? |
Yary has asked for the wisdom of the Perl Monks concerning the following question:
Howdy monks,
I've seen more than a few questions about the stdout/stderr handles with IPC::Open3, but not yet found people with the issue I'm having on stdin. Here's a one-liner that prints "Hello" on Unix, but hangs on Win32. It is about as simplified as I can get it. There's a subprocess which just prints everything it reads from STDIN, that's the perl -pe 1. Around it is wrapped a call to open3, and the caller prints in a string, closes IN, which should generate an EOF for the child... but it never happens. I have tried printing a multi-line string, reading just one line with "readline" or "scalar <>" does work, showing that open3 is indeed communicating over IN. The child sees input written by the parent, it does not see the parent closing IN when running under Win32. I am about to go to bed, and in the morning will just use open("|cmd") with some fancy redirects to get stdout and stderr where I want to go... unless a genius can point out what I'm doing wrong/a solution... preferably using only standard modules (or those that ship with ActiveState's distribution) thanks, and sorry for brain cells lost, in advance
Back to
Seekers of Perl Wisdom
|
|