0

次の行を含むPerlスクリプトがあります。

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

プログラムの他の場所に編集される@irqsある種のコレクション(私はPerlプログラマーではありません)はどこにありますか。push

ハッシュである別のコレクションがあります。ここで、キーはコレクションの値$_->{label}または$_->{irq}コレクションからの値と同じ@irqsです。

上記のステートメントで出力する代わりに、ハッシュからの値がどこにある$_->{count}かを出力したいと思います。$_->{count} - XX

@irqs手作業で繰り返し、計算された値を使用して新しいコレクションにプッシュすることでこれを実行できると確信していますが、より良い方法はあります$_->{label}$_->{irq}

私が言ったように、私はPerlプログラマーではないので、始める前に正しい道を進んでいることを確認したかっただけです...

4

1 に答える 1

2

これを行うために追加のデータをコピー/保存する必要はありません。

foreach my $irq (@irqs) {
    my $key = $irq->{label} || $irq->{irq};
    print $key, "=", $irq->{count} - $myhash{$key}, "; ";
}
于 2010-12-08T16:14:04.837 に答える