使用-T开关[PERL]运行时,不安全的依赖关系处于打开状态



我有一个这样的函数:

open my $pipe, "-|", '/usr/bin/externalcmd | /usr/bin/awk '{print $2" "$4}''
|| die "can't fork command: $!";    
while (<$pipe>) { 
my ($if, $ip) = split;
my $file = "/some/file/$if";
open (FILE, ">$file") || die "can't open $file for $ip: $!";

# ...
close(FILE);
}    
close ($pipe);

它在open上失败,并出现以下错误:

当在线路1383上用-T开关运行时处于打开状态的不安全依赖性,<管道>第1行。

我该怎么解决这个问题?

答案是"洗衣";通过正则表达式匹配$if变量,如下所示:

# e.g., only "word" characters
if ($if =~ /^([-@w.]+)z/) {
$if = $1;
} else {
die "Bad data in '$if'";
}

然后像以前一样继续。

最新更新