各キーに 3 つの異なる値がある状況があります。次のようにデータを印刷する必要があります。
K1 V1 V2 V3 K2 V1 V2 V3 … Kn V1 V2 V3
以下にリストされている以外に、これを達成するための効率的で簡単な代替方法はありますか? 私は2つのアプローチを考えています:
各キーの 3 つの異なる値に対して 3 つのハッシュを維持します。キーに基づいて 1 つのハッシュを反復処理し、他の 2 つのハッシュから値を取得して出力します。
ハッシュ 1 - K1->V1 ... ハッシュ 2 - K1->V2 ... ハッシュ 3 - K1->V3 ...
値の配列を参照するためのキーを持つ単一のハッシュを維持します。ここでは、1 つのハッシュのみを繰り返して読み取る必要があります。
K1 --> Ref{V1,V2,V3}
EDIT1:
主な課題は、値 V1、V2、V3 が異なる場所で導出され、配列として一緒にプッシュできないことです。したがって、ハッシュ値を配列への参照として作成すると、次の値を追加するたびに逆参照する必要があります。
たとえば、私は subroutine1 にいます - 私は Hash1 にデータを取り込みました -K1-->[V1]
私は subroutine2 にいます - 私は de-reference してから[V1]
push する必要がありV2
ます。したがって、ハッシュは になりK1-->[V1 V2]
、V3
別のルーチンに追加されます。K1-->[V1 V2 V3]
EDIT2:
今、私は別の課題に直面しています。に基づいてハッシュをソートする必要がありV3
ます。キーとリストの参照を使用してハッシュを保存することはまだ可能ですか?
K1-->[V1 V2 V3]