my @AoA; foreach (@transactions) { #there are dozens of employee numbers… push @{$AoA[$_]}, $_; } #### my %HoA; foreach (@transactions) { my ($name, $num, $value) = ...; $HoA{NAME} = $name; $HoA{NUM} = $num; push @{$HoA{VALS}}, $value; }