Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!VAX1.CC.UAKRON.EDU!math-cs.kent.edu!news From: gorpong@math-cs.kent.edu (Gordon C. Galligher) Newsgroups: comp.lang.perl Subject: Perl 3.0 PL28 problems with pipe() cont'd Message-ID: <1990Sep4.210833.13422@math-cs.kent.edu> Date: 4 Sep 90 21:08:33 GMT Organization: Kent State University Lines: 16 Here is another wierdness in the code. I changed it slightly to remove the two pipes, and just the one pipe, had the child close the read and the parent close the write, and then had the child send first a 25 and then a 250 and then sleep 20 seconds before exiting. The parent just did a read with a print, and another read and print. The parent hung until the child had died (thus flushing the pipe (even though it was set to be unbuffered by the child)) and the parent read both numbers in as one "25250". Is there something which I am missing terribly? I really do not understand this behavior and why it differs so from C. Even if I $| = 1 in the parent before closing it, it still does not work. If I put the select(DESC1_1); $| = 1; select(STDOUT); before the fork, the exact same results occur. Larry, I seek your infinite wisdom in the manner of this behavior. -- Gordon.