内容

名称

IO::Pipe - 为管道提供对象方法

概要

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

描述

IO::Pipe 提供了一个用于在进程之间创建管道的接口。

构造函数

new ( [READER, WRITER] )

创建一个 IO::Pipe,它是一个指向新创建的符号的引用(参见 Symbol 包)。IO::Pipe::new 可选地接受两个参数,它们应该是被祝福到 IO::Handle 或其子类中的对象。这两个对象将用于系统调用 pipe。如果没有给出参数,则在新的 IO::Pipe 对象上调用方法 handles

这两个句柄在调用readerwriter之前都保存在GLOB的数组部分。

方法

reader ([ARGS])

该对象被重新祝福为IO::Handle的子类,并成为管道读取端的句柄。如果提供了ARGS,则调用fork并将ARGS传递给exec。

writer ([ARGS])

该对象被重新祝福为IO::Handle的子类,并成为管道写入端的句柄。如果提供了ARGS,则调用fork并将ARGS传递给exec。

handles ()

此方法在IO::Pipe::new构造新创建的IO::Pipe对象时被调用。它返回一个包含两个对象的数组,这两个对象被祝福为IO::Pipe::End,或其子类。

另请参阅

IO::Handle

作者

Graham Barr。目前由Perl Porters维护。请在https://github.com/Perl/perl5/issues报告所有错误。

版权

版权所有 (c) 1996-8 Graham Barr <[email protected]>。保留所有权利。本程序是自由软件;您可以在与 Perl 本身相同的条款下重新发布和/或修改它。