2010-07-14 94 views

回答

1

是的,你可以使用管道這樣的:

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

更多信息管操作的完整描述,請參閱open的文檔,並perlipc

+4

兩ARG'open'是舊的,這些混沌(和潛在的危險)。 [改用三參數版本](http://www.modernperlbooks.com/mt/2010/04/three-arg-open-migrating-to-modern-perl.html) – Daenyth 2010-07-14 03:12:51

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 ...