我正在尝试显示使用另一家公司的API获取的对象数组中的数据,但是当我尝试使用foreach循环时出现错误。
我正在使用Dumper来显示数组中的所有内容。
print Dumper($object);
自卸车的部分输出:
'enable_dha_thresholds' => 'false', 'members' => [ bless( { 'ipv4addr' => '192.168.1.67', 'name' => 'name.something.com' }, 'Something::Network::Member' ), bless( { 'ipv4addr' => '192.168.1.68', 'name' => 'name.something.com' }, 'Something::Network::Member' ) ], 'comment' => 'This is a comment',
I'm trying to extract the "members" which appears to be a double array:
//this works
print $members->enable_dha_thresholds();
//this works
print $members[0][0]->ipv4addr;
//does not work
foreach my $member ($members[0]){
print "IP". $member->ipv4addr()."\n";
}
我收到此错误:
无法在./script.pl第12行的无偏引用上调用方法“ipv4addr”。
我不确定Perl中的“祝福”与“祝福”是完全陌生的,因为我是该语言的新手。
最佳答案
print $members[0][0]->ipv4addr; //this works
因此$ members [0]是一个数组引用。
您必须取消引用数组:
foreach my $member ( @{ $members[0] } ){
print "IP". $member->ipv4addr()."\n";
}
引用“无误引用”的错误表明您没有使用对象。而是您提供了一个数组引用,这是不一样的:)
HTH,
保罗
关于perl - 显示对象数组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5097709/