我写了一个快速的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 );
Run Code Online (Sandbox Code Playgroud)
如何以这种方式声明一个可以从循环外部访问的变量?
mob*_*mob 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);
Run Code Online (Sandbox Code Playgroud)