Цикл массива хэшей в Perl - PullRequest
       2

Цикл массива хэшей в Perl

9 голосов
/ 20 января 2011

Я абсолютный новичок в 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"; }

1 Ответ

28 голосов
/ 20 января 2011

@array содержит хеш ссылки , поэтому вам необходимо использовать -> для разыменования.

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

См. Также документацию, например perldoc perlreftut и perldoc perlref .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...