Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

IO::Pipe (3)

Name

IO::Pipe - supply object methods for pipes

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>) {
...
}

Description

Perl Programmers Reference Guide                                   IO::Pipe(3)



NAME
       IO::Pipe - supply object methods for pipes

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>) {
                   ...
               }

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

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.

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.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+-----------------------+
       |ATTRIBUTE TYPE |   ATTRIBUTE VALUE     |
       +---------------+-----------------------+
       |Availability   | runtime/perl-532      |
       +---------------+-----------------------+
       |Stability      | Pass-through volatile |
       +---------------+-----------------------+

SEE ALSO
       IO::Handle

AUTHOR
       Graham Barr. Currently maintained by the Perl Porters.  Please report
       all bugs to <perlbug@perl.org>.

COPYRIGHT
       Copyright (c) 1996-8 Graham Barr <gbarr@pobox.com>. All rights
       reserved.  This program is free software; you can redistribute it
       and/or modify it under the same terms as Perl itself.



NOTES
       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       http://www.cpan.org/src/5.0/perl-5.32.0.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.perl.org/.



perl v5.32.0                      2020-06-14                       IO::Pipe(3)