Perl 显示对象数组中的数据
我试图显示使用另一家公司的API获得的对象数组中的数据,但在尝试使用foreach循环时出错 我正在使用转储程序显示数组中的所有内容Perl 显示对象数组中的数据,perl,data-dumper,Perl,Data Dumper,我试图显示使用另一家公司的API获得的对象数组中的数据,但在尝试使用foreach循环时出错 我正在使用转储程序显示数组中的所有内容 print Dumper($object); 转储程序的部分输出: 'enable_dha_thresholds' => 'false', 'members' => [ bless( { 'ipv4addr' => '192.168.1.67', 'name' => 'name.something.com' }, 'S
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',
我收到这个错误:
无法对位于./script.pl第12行的未经许可的引用调用方法“ipv4addr”
我不确定自己是否完全理解Perl中的“有福”与“无福”之比,因为我对该语言还不熟悉
打印$members[0][0]->ipv4addr//这
工作
所以$members[0]是一个数组引用您必须取消对数组的引用:
foreach my $member ( @{ $members[0] } ){
print "IP". $member->ipv4addr()."\n";
}
引用“未删减引用”的错误表明您没有使用对象;相反,您提供了一个数组引用,这是不同的:)
嗯,,
保罗这是一个“数组引用”与“数组”的问题$members[0]
是数组引用;foreach
操作符处理数组(或列表,学究式)。你会想说
foreach my $member ( @{$members[0]} ) { ...
迭代$members[0]
引用的元素
语法很复杂,在使用这些东西的过程中,您可能还会犯一些错误。让您了解最新情况的相关文档包括(或),以及和
顺便说一句,“受祝福”意味着引用“知道”它是什么类型的对象,以及它应该查看什么包来查看它可以运行什么方法。当您收到“未删除的引用”警告或错误时,通常意味着您传递的对象不是预期对象的某个对象——在这种情况下,
$members[0]
是未删除的引用,而您打算传递受祝福的引用$members[0][0]
,$members[0][1]
,等等。谢谢,那正是我想要的。
foreach my $member ( @{$members[0]} ) { ...