2つのExcelファイルがあります。ファイルを最初に優れ、このようなものです:私が最初に優れたファイルができます既存の複合ハッシュ構造のキーと配列を関連付ける方法
$VAR1 = { 'P5' => { 'E' => '06' => [100, 200, 95] 'B' => '23' => [20, 1000, 05, 30] }, 'P2' => { 'C' => '24' => [18, 23, 2300, 3456] }, 'P1' => { 'A' => '12' => [24, 25, 3200, 5668] 'D' => '15' => [168] } };
次のようなデータ構造を生成したい
06 100
23 20
06 200
06 95
23 05
24 18
:
12 A P1
23 B P5
24 C P2
15 D P1
06 E P5
二エクセルのファイルこのようなものです私は以下のデータ構造を生成します。次のように私は最初から上記の部分構造を実現するために、ファイルをエクセルなかった何
$VAR1 = { 'P5' => { 'E' => '06', 'B' => '23' }, 'P2' => { 'C' => '24' }, 'P1' => { 'A' => '12', 'D' => '15' } };
は次のとおりです。
my %Var1;
for my $i (1 .. $row1)
{
# for simplicity, I just keep the main part to building this hash chain
$Var1{$column3}->{$column2} = {$column1};
}
ここ$column3
はp1
、p2
などに関し、 $column2
はE
,B
などであり、$column1
は06
,23
,24
などに関する。 $column1
に関連付けられた配列は、2番目のExcelファイルから抽出されます。
私の質問は、第二のExcelファイルを横断しながら、それに100
をプッシュするために、06
のように、この部分的に完成したハッシュ%Var1
通じ、各キーのために反復する方法です。だから、
また、配列/ハッシュリファレンスについてはhttp://perldoc.perl.org/perlreftut.htmlを読むことをお勧めします。本当に私を助けました! – Richard
リチャード、返事をありがとう。私の質問は、最初のExcelファイルの部分的なハッシュ構造を既に持っていると仮定します。最初の行は06 00です。まず、既存の部分ハッシュ構造で06の位置を見つけ、このキーに100を追加する必要があります。06既存のハッシュ構造はかなり複雑であるため、私はこの重要な発見操作を実行する方法を知らない。ありがとう。 – user1109094
キー '06'を別のセクションに表示できますか?例えばP1とP5 - あるいはユニークなキーですか? – Richard