В 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 поисковых запросов. Добрый совет