pipeREADHANDLE
,WRITEHANDLE
Like the corresponding
system call, this function opens a pair of connected pipes - see
pipe(2). This call is almost always used right
before a fork, after which the pipe's reader
should close WRITEHANDLE
, and the writer close
READHANDLE
. (Otherwise the pipe won't indicate EOF
to the reader when the writer closes it.) Note that if you set up a loop of
piped processes, deadlock can occur unless you are very careful. In addition,
note that Perl's pipes use standard I/O buffering, so you may need to set
$| on your WRITEHANDLE
to flush after each output command, depending on the application - see select (output filehandle).
See also the section on "Pipes" in Chapter 6.