我正在使用Infoblox设备的Perl API(文档:https://ipam.illinois.edu/api/doc/)进行工作。
我有以下代码:
这是Infoblox::DNS::Host对象的相关部分:"x"。
我不知道我做错了什么,为什么foreach与$_变量不起作用。我尝试将ipv4addrs()赋值给一个数组,然后对其进行foreach循环,但没有成功。
我有以下代码:
...
my $specificRecord = $recordResults[0];
say $specificRecord->name();
foreach ($specificRecord->ipv4addrs())
{
say $_;
}
$specificRecord包含一个Infoblox::DNS::Host记录对象。
当我在ipv4addrs()上进行迭代时,问题就出现了。根据文档和Perl调试器的说明,ipv4addrs()返回一个包含IP或DHCP::FixedAddr对象的数组。
在我的情况下,如果我调试我的程序并且将$specificRecord->ipv4addrs()以及$_打印出来,我会得到相同的结果:
DB<1> b 70
DB<2> c
Results: 1
aaaa9999test.justice
main::(testScript2.pl:70): foreach ($specificRecord->ipv4addrs())
main::(testScript2.pl:71): {
DB<2> x $specificRecord->ipv4addrs();
0 ARRAY(0x64e9e3c)
0 '8.8.8.8'
1 '8.8.4.4'
DB<3> n
main::(testScript2.pl:72): say $_;
DB<3> x $_;
0 ARRAY(0x64e9e3c)
0 '8.8.8.8'
1 '8.8.4.4'
这是Infoblox::DNS::Host对象的相关部分:"x"。
DB<2> x $specificRecord;
0 Infoblox::DNS::Host=HASH(0x8b3eacc)
'__object_id__' => 'dns.host$._default.justice.aaaa9999test'
'aliases' => ARRAY(0x8b3e9fc)
empty array
'configure_for_dns' => 'true'
'disable' => 'false'
'ipv4addrs' => ARRAY(0x64e9e3c)
0 '8.8.8.8'
1 '8.8.4.4'
'ipv6addrs' => ARRAY(0x8aa1bac)
empty array
'name' => 'aaaa9999test.justice'
...
我不知道我做错了什么,为什么foreach与$_变量不起作用。我尝试将ipv4addrs()赋值给一个数组,然后对其进行foreach循环,但没有成功。