В Perl, у меня есть массив хэшей какмассив хэшей
0 HASH(0x98335e0)
'title' => 1177
'author' => 'ABC'
'quantity' => '-100'
1 HASH(0x832a9f0)
'title' => 1177
'author' => 'ABC'
'quantity' => '100'
2 HASH(0x98335e0)
'title' => 1127
'author' => 'DEF'
'quantity' => '5100'
3 HASH(0x832a9f0)
'title' => 1277
'author' => 'XYZ'
'quantity' => '1030'
Теперь мне нужно накопить количество, где название и автора являются одинаковыми. В приведенной выше структуре для хеша с названием = 1177 и автор = количество «ABC» может накапливаться в одну и вся структура должно выглядеть, как показано ниже
0 HASH(0x98335e0)
'title' => 1177
'author' => 'ABC'
'quantity' => 0
1 HASH(0x98335e0)
'title' => 1127
'author' => 'DEF'
'quantity' => '5100'
2 HASH(0x832a9f0)
'title' => 1277
'author' => 'XYZ'
'quantity' => '1030'
Что является лучшим способом я могу сделать это накопление так, что он оптимизирован? Количество элементов массива может быть очень большим. Я не возражаю добавить дополнительный ключ к хэшу, чтобы помочь ему, но я не хочу, чтобы n поиск. Пожалуйста, посоветуйте
Вы говорите «я не хочу искать n», но нет никакого способа накопления по всему массиву без доступа к каждому члену массива. –
Пожалуйста, добавьте [perldoc perldsc] (http://perldoc.perl.org/perldsc.html) и [perldoc perlreftut] (http://perldoc.perl.org/perlreftut.html) в свой список чтения. – Ether