Perl反引号没有捕获输出

时间:2014-01-04 07:06:22

标签: perl debugging backticks

我有以下程序代码段

my $nfdump_command = "nfdump -M /data/nfsen/profiles-data/live/upstream1  -T  -R ${syear}/${smonth}/${sday}/nfcapd.${syear}${smonth}${sday}0000:${eyear}/${emonth}/${eday}/nfcapd.${eyear}${emonth}${eday}2355 -n 100 -s ip/bytes -N -o csv -q | awk 'BEGIN { FS = \",\" } ; { if (NR > 1) print \$5, \$10 }'";
syslog("info", $nfdump_command);

my %args;
Nfcomm::socket_send_ok ($socket, \%args);
my @nfdump_output = `$nfdump_command`;
my %domain_name_to_bytes;
my %domain_name_to_ip_addresses;

syslog("info", Dumper(\@nfdump_output));

foreach my $a_line (@nfdump_output) {
    syslog("info", "LINE: " . $a_line);
}

错误:@nfdump_output为空。 enter image description here

$ nfdump_command是正确的,单独运行时打印输出

enter image description here

1 个答案:

答案 0 :(得分:0)

这个程序工作了一段时间然后它就破了。无法弄清楚原因。将我的开发设置移动到另一个虚拟机后,我发现使用 nfdump的绝对路径修复了它