使用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访问数组元素的变量的主要内容,如果未能解决你的问题,请参考以下文章

perl访问数组中参数

7-Perl 数组

Perl 数组

如何访问json中的数组元素?

Perl 在生信中的应用 | 3. 数组

Perl如何访问作为另一个哈希值的数组元素的哈希?