perl - 在Perl中循环遍历一系列哈希

标签 perl

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

my @array = (
  {username => 'user1', email => 'user1@email' },
  {username => 'user2', email => 'user2@email' },
  {username => 'user2', email => 'user3@email' }
);

遍历此数组的最简单方法是什么?我以为这样的事情会起作用:
print "$_{username} : $_{email}\n" foreach (@array);

但事实并非如此。我想我太拘泥于PHP思维方式了,我只能做类似的事情:
foreach ($array as $user) { echo "$user['username'] : $user['email']\n"; }

最佳答案

@array包含哈希引用,因此您需要使用->取消引用。

print "$_->{username} : $_->{email}\n" foreach (@array);

另请参见文档,例如perldoc perlreftutperldoc perlref

关于perl - 在Perl中循环遍历一系列哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4747637/

相关文章:

perl - 适合初学者的小型可运行 www::Mechanize 示例

postgresql - 我可以在连接后定义 DBIx::Class::ResultSource::View 吗?

mysql - Perl 和 MySql 中的 utf8 编码

perl - 如何将在另一个Perl脚本中执行的Perl脚本的输出重定向到文件?

perl - Perl 最佳实践是否允许在字符串中包含方法名称?

web-services - SOAP::Lite 是否可用于创建文档/文字 Web 服务?

perl - 为什么有些变量需要初始化而有些变量不需要在同一个脚本中?

arrays - 降低 Perl 数组的时间复杂度

perl - Perl 的 LWP::UserAgent 包中的 "Non-blocking socket operation"错误

perl -//'' 是什么;在字符串末尾连接时在 Perl 中是什么意思?