当我在循环中设置变量时,如何访问循环外的变量?

2 perl loops

我写了一个快速的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)

  • 不使用"严格使用"就像驾驶没有安全带的100英里/小时 - 这是一个非常糟糕的主意,除非你完全确定你知道自己在做什么,如果你认为你知道自己在做什么,那么你可能错了. (3认同)