Có một handhandle/handle cho đầu ra của lệnh hệ thống mà tôi thực hiện trong Perl không?Filehandle cho Đầu ra từ Lệnh Hệ thống trong Perl
6
A
Trả lời
1
12
Dưới đây là một ví dụ về việc thiết lập đường ống giữa kịch bản của bạn và các lệnh khác, sử dụng các hình thức 3 đối số của open
:
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 ...
Hai arg 'open' là cũ và crufty (và nguy hiểm tiềm tàng). [Sử dụng phiên bản ba arg thay thế] (http://www.modernperlbooks.com/mt/2010/04/three-arg-open-migrating-to-modern-perl.html) – Daenyth