Передача массива хэшей в хэш хэшей в Perl - PullRequest
1 голос
/ 07 декабря 2011

У меня есть массив хэшей.Мне нужно собрать все хэши, которые соответствуют некоторому критерию, в группы, которые могут обрабатываться по одному за раз.Я подумал, что хорошим способом было бы посмотреть на каждый хеш, определить, к какой группе он принадлежит, и затем добавить хеш в новый массив.

У меня возникли проблемы с определением структуры данныхиспользовать для этого.Массив массив хешей?(Таким образом, у каждой группы есть элемент родительского массива, а дочерний массив содержит хэши.) Есть ли более элегантный способ сделать это со ссылками?

Моя отправная точка примерно такая:

foreach (@AoH) {
  my $group = int( $_->{'ID'} / 10 );

 ... need to collect the hash $_ with other hashes that have the same $group ...
}

1 Ответ

3 голосов
/ 07 декабря 2011

Я бы использовал хэш массива хэшей, где ключом является группа.

my %HoAoH;
foreach (@AoH) {
    my $group = int( $_->{'ID'} / 10 );
    push @{$HoAoH{$group}}, $_;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...