用于从Perl中的系统命令输出的文件句柄

时间:2010-07-14 00:37:15

标签: perl ipc pipe stdio filehandle

我在Perl中执行的系统命令的输出是否有文件句柄/句柄?

2 个答案:

答案 0 :(得分:12)

以下是使用open的3参数形式在脚本和其他命令之间建立管道的示例:

open(my $incoming_pipe, '-|', 'ls -l')             or die $!;
open(my $outgoing_pipe, '|-', "grep -v '[02468]'") or die $!;

my @listing = <$incoming_pipe>;          # Lines from output of ls -l
print $outgoing_pipe "$_\n" for 1 .. 50; # 1 3 5 7 9 11 ...

答案 1 :(得分:1)

是的,您可以使用这样的管道:

open(my $pipe, "ls|") or die "Cannot open process: $!";
while (<$pipe>) {
    print;
}

有关详细信息,请参阅open的文档;有关管道操作的完整说明,请参阅perlipc