'RXX-1' => { 'RCA 1' => '', 'key' => 'HEMJJ', 'ID' => '3345', 'stem' => '', } '' => { 'RCA 1' => '', 'key' => 'HKKJ', 'ID' => '232', } #### for my $row(1 ..$row_max){ my $count = 1; my @data = map { my $cell = $worksheet->get_cell($row, $_); $cell ? $cell->value() : ''; } @required_cols; foreach my $col(@values){ warn $worksheet->get_cell($row,0)->value() . $col."\n"; $details->{ $worksheet->get_cell($row,0)->value() }{$col} = shift @data if defined $worksheet->get_cell($row, 1)->value(); } } #### '1' => { 'code' => 'RXX-1' 'RCA 1' => '', 'key' => 'HEMJJ', 'ID' => '3345', 'stem' => '', } '2' => { 'RCA 1' => '', 'key' => 'HKKJ', 'ID' => '232, 'code' => '', ..... }