У меня есть два файла Excel.Первый файл Excel выглядит следующим образом:
12 A P1
23 B P5
24 C P2
15 D P1
06 E P5
Второй файл Excel выглядит следующим образом:
06 100
23 20
06 200
06 95
23 05
24 18
Я хочу создать следующую структуру данных
$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]
}
};
Первый файл Excel позволяет мне создать следующую структуру данных.
$VAR1 = {
'P5' => {
'E' => '06',
'B' => '23'
},
'P2' => {
'C' => '24'
},
'P1' => {
'A' => '12',
'D' => '15'
}
};
То, что я сделал для реализации вышеуказанной частичной структуры из первого файла Excel, выглядит следующим образом:
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
, будут извлечены из второго файла Excel.
Мой вопрос заключается в том, как перебрать этот частично законченный хеш %Var1
и для каждого ключа, например 06
, вставить 100
в него при обходе второго файла Excel.