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
提供了一个用于在进程之间创建管道的接口。
创建一个 IO::Pipe
,它是一个指向新创建的符号的引用(参见 Symbol 包)。IO::Pipe::new
可选地接受两个参数,它们应该是被祝福到 IO::Handle
或其子类中的对象。这两个对象将用于系统调用 pipe
。如果没有给出参数,则在新的 IO::Pipe
对象上调用方法 handles
。
这两个句柄在调用reader
或writer
之前都保存在GLOB的数组部分。
该对象被重新祝福为IO::Handle
的子类,并成为管道读取端的句柄。如果提供了ARGS
,则调用fork
并将ARGS
传递给exec。
该对象被重新祝福为IO::Handle
的子类,并成为管道写入端的句柄。如果提供了ARGS
,则调用fork
并将ARGS
传递给exec。
此方法在IO::Pipe::new
构造新创建的IO::Pipe
对象时被调用。它返回一个包含两个对象的数组,这两个对象被祝福为IO::Pipe::End
,或其子类。
Graham Barr。目前由Perl Porters维护。请在https://github.com/Perl/perl5/issues报告所有错误。
版权所有 (c) 1996-8 Graham Barr <[email protected]>。保留所有权利。本程序是自由软件;您可以在与 Perl 本身相同的条款下重新发布和/或修改它。