4
我與Infoblox設備的Perl的API工作(DOC:https://ipam.illinois.edu/api/doc/)混淆Perl數組行爲
我有以下代碼:
...
my $specificRecord = $recordResults[0];
say $specificRecord->name();
foreach ($specificRecord->ipv4addrs())
{
say $_;
}
$ specificRecord包含Infoblox的DNS ::: :主機記錄對象。
我在迭代ipv4addrs()時遇到了問題。根據文檔和perl調試器,ipv4addrs()返回一個包含IP或DHCP :: FixedAddr對象的ARRAY。
就我而言,如果我調試我的程序和「X」 $ 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'
這裏的「相關部分X」的Infoblox的DNS ::主持人::對象:
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()分配給一個數組,然後對此進行傳遞,但無濟於事。
我愛你在最無色情和男子氣概的方式可以想象。花了一個半小時在這個愚蠢的。我喜歡Perl,但是當然。非常感謝你的幫助。 – gparent
另外我會接受定時器時,upvoted已經:) – gparent
@gparent它會更混亂,如果它解除引用你的數組ref。 –