You are viewing the version of this documentation from Perl 5.12.4. View the latest version
pipe READHANDLE,WRITEHANDLE

Opens a pair of connected pipes like the corresponding system call. 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 IO buffering, so you may need to set $| to flush your WRITEHANDLE after each command, depending on the application.

See IPC::Open2, IPC::Open3, and "Bidirectional Communication" in perlipc for examples of such things.

On systems that support a close-on-exec flag on files, that flag is set on all newly opened file descriptors whose filenos are higher than the current value of $^F (by default 2 for STDERR). See "$^F" in perlvar.