对于perl中数组中的每个对象

时间:2016-08-11 22:17:36

标签: perl loops for-loop

我试图在Perl中循环遍历数组中的每个对象,我认为我犯了一个明显的错误。

my @members_array = [
    {
        id    => 1234,
        email => 'first@example.com',
    }, {
        id    => 4321,
        email => 'second@example.com',
    }
];

use Data::Dumper;
for my $member ( @members_array ) {
    print Dumper( $member );
}

第一次迭代的预期输出

{
    id    => 1234,
    email => 'first@example.com',
}

第一次迭代的实际输出

[{
    'email' => 'first@example.com',
    'id' => 1234
 }, {
    'email' => 'second@example.com',
    'id' => 4321
}];

如何遍历数组中的这些元素?谢谢!

1 个答案:

答案 0 :(得分:2)

[ ... ]用于创建数组引用;您需要使用( ... )来创建数组:

my @members_array = (
    {
        id    => 1234,
        email => 'first@example.com',
    }, {
        id    => 4321,
        email => 'second@example.com',
    }
);

然后你的其余代码就可以了。