使用perl访问数组元素的变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用perl访问数组元素的变量相关的知识,希望对你有一定的参考价值。
我试图访问perl中数组中的特定变量成员。
my $array = [];
@{$array} = (
{ 'family' => "abc",
'roles' => {},
},
{ 'family' => "def",
'roles' => {
'member'=>["1234"],
},
},
);
我试图使用访问值
foreach (@{$array}){
print " $_->{'family'}
";
#This is printing the family value
}
有人可以向我解释我如何访问成员field.i尝试使用$ _-> roles - > {'member'}但这似乎不起作用。这里的任何输入都会有很大的帮助。
我得到以下输出..我没有得到任何错误。
散列(0x268d35) - >角色 - > { '构件'}
答案
尝试
# hash ref, key 'family' pointing to scalar
print $_->{family}, "
";
# hash ref, key 'roles' pointing to hash ref,
# key 'members' pointing to array ref
print @{ $_->{roles}->{member} }, "
";
你的哈希引用被内插到一个字符串中,因此HASH(...)
。
完整的代码示例基于您的代码:
#!/usr/bin/perl
use strict;
use warnings;
my $array = [
{
family => "abc",
roles => {},
},
{
family => "def",
roles => {
member => ["1234"],
},
},
];
for my $hash_ref (@{ $array }) {
print "family ", $hash_ref->{family}, "
";
while (my($key, $value) = each %{ $hash_ref->{roles} }) {
print "role '${key}' @{ $value }
";
}
}
exit 0;
测试运行
$ perl dummy.pl
family abc
family def
role 'member' 1234
以上是关于使用perl访问数组元素的变量的主要内容,如果未能解决你的问题,请参考以下文章