Если нам важен порядок вывода на печать, мы можем сделать следующее:
perl -lane '$h{$F[0]}+=$F[1]; $h[-1+keys%h]=$F[0]; END{print "$_ $h{$_}" for @h}'
Идея состоит в том, чтобы поддерживать текущие суммы определенного элемента в хеше % h
и порядок, в котором конкретный элемент элемент был замечен в массиве @h
. В конце файла мы просто печатаем хеш (ключ + значение), беря порядок из массива @h
.
paper 9
eraser 2
pencil 54