logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

IO::Pipe - supply object methods for pipes

Author

Graham Barr. Currently maintained by the Perl Porters. Please report all bugs at <https://github.com/Perl/perl5/issues>.

Constructor

new ( [READER, WRITER] ) Creates an "IO::Pipe", which is a reference to a newly created symbol (see the Symbol package). "IO::Pipe::new" optionally takes two arguments, which should be objects blessed into "IO::Handle", or a subclass thereof. These two objects will be used for the system call to "pipe". If no arguments are given then method "handles" is called on the new "IO::Pipe" object. These two handles are held in the array part of the GLOB until either "reader" or "writer" is called.

Description

"IO::Pipe" provides an interface to creating pipes between processes.

Methods

reader ([ARGS]) The object is re-blessed into a sub-class of "IO::Handle", and becomes a handle at the reading end of the pipe. If "ARGS" are given then "fork" is called and "ARGS" are passed to exec. writer ([ARGS]) The object is re-blessed into a sub-class of "IO::Handle", and becomes a handle at the writing end of the pipe. If "ARGS" are given then "fork" is called and "ARGS" are passed to exec. handles () This method is called during construction by "IO::Pipe::new" on the newly created "IO::Pipe" object. It returns an array of two objects blessed into "IO::Pipe::End", or a subclass thereof.

Name

IO::Pipe - supply object methods for pipes

See Also

IO::Handle

Synopsis

use IO::Pipe; $pipe = IO::Pipe->new(); if($pid = fork()) { # Parent $pipe->reader(); while(<$pipe>) { ... } } elsif(defined $pid) { # Child $pipe->writer(); print $pipe ... } or $pipe = IO::Pipe->new(); $pipe->reader(qw(ls -l)); while(<$pipe>) { ... }

See Also