我写了一个快速的Perl脚本来查询本地DNS服务器的IP地址,我有一个需要在循环范围内声明的变量,但它似乎不在范围之外环。编译器返回错误
Global Symbol "$ipAddr" requires explicit package name
这是代码
my $resolver = Net::DNS::Resolver->new;
my $dnsQuery = $resolver->search($hostIP[0]->getFirstChild->getData);
if ($dnsQuery) {
foreach my $rr ($dnsQuery->answer) {
next unless $rr->type eq "A";
my $ipAddr = ip2dec($rr->address);
}
}
print( "::".$ipAddr );
如何以可以从循环外部访问的方式声明变量?
答案 0 :(得分:14)
将my $ipAddr
声明置于循环之外:
my $dnsQuery = $resolver->search($hostIP[0]->getFirstChild->getData);
my $ipAddr;
if ($dnsQuery) {
foreach my $rr ($dnsQuery->answer) {
next unless $rr->type eq "A";
$ipAddr = ip2dec($rr->address);
}
}
print("::".$ipAddr);