循环遍历Perl中的一系列哈希

Ric*_*cky 9 perl

我是Perl的新手,所以请原谅我,如果这真的很愚蠢,但我无法弄清楚这一点.如果我有这样的数组:

my @array = (
  {username => 'user1', email => 'user1@email' },
  {username => 'user2', email => 'user2@email' },
  {username => 'user2', email => 'user3@email' }
);
Run Code Online (Sandbox Code Playgroud)

循环遍历此数组的最简单方法是什么?我认为这样的事情会起作用:

print "$_{username} : $_{email}\n" foreach (@array);
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.我想我太困惑了PHP的思维方式,我可以做一些像:

foreach ($array as $user) { echo "$user['username'] : $user['email']\n"; }
Run Code Online (Sandbox Code Playgroud)

msc*_*cha 28

@array包含哈希引用,因此您需要使用->derefecence.

print "$_->{username} : $_->{email}\n" foreach (@array);
Run Code Online (Sandbox Code Playgroud)

另请参阅文档,例如perldoc perlreftutperldoc perlref.

  • 也可以写成'say"$$ _ {username}:$$ _ {email}"for @array;` (2认同)