Итерация по коллекции Perl, вычисление нового значения - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть скрипт Perl, в котором есть следующая строка:

print $_->{label} || $_->{irq}, "=", $_->{count}, "; " for @irqs;

Где @irqs - это некая коллекция (я не программист на Perl), которая push отправлена ​​в другое местов программе.

У меня есть другая коллекция, которая представляет собой хэш, где ключ равен либо $_->{label}, либо $_->{irq} из коллекции @irqs.

Вместопечати $_->{count} в приведенном выше утверждении, я хотел бы вывести $_->{count} - X, где X - значение из хеш-функции.

Я уверен, что могу сделать это, выполнив итерации по @irqs с помощьюи вставив $_->{label} или $_->{irq} в новую коллекцию с вычисленным значением, но есть ли лучший способ сделать это?

Как я уже сказал, я не программист на Perl, поэтомуЯ просто хотел убедиться, что иду по правильному пути, прежде чем начать ...

1 Ответ

2 голосов
/ 08 декабря 2010

Вам не нужно копировать / хранить какие-либо дополнительные данные, чтобы сделать это.

foreach my $irq (@irqs) {
    my $key = $irq->{label} || $irq->{irq};
    print $key, "=", $irq->{count} - $myhash{$key}, "; ";
}
...