我将如何捕获从 wget 以下列方式被 Perl 调用的 STDOUT 返回并将其放入变量中?
my @urls = ('url1', 'url2', 'url3');
open(GET, "| xargs -n1 -P 3 wget -qO- ") || die "get failed: $!\n";
print GET "@urls";
首先,您的管道是输入管道,open
不支持输入和输出管道。作为替代方案,使用管道输出并为每个 URL 打开一个文件句柄:
use strict;
use warnings;
my @urls=qw(url1 url2 url3);
foreach my $url(@urls)
{
open(my $get,"-|","wget $url") or die $!;
print while(<$get>);
close($get);
}