my @names=qw/value1 value2 value3/; my @array1=(1, 2, 3); my @array2=(4, 5, 6); #### my @AoA; push @AoA, [ 1,2,3 ]; push @AoA, [ 4,5,6 ]; #Then use them as such: $AoA[0][0]; # 1st element of first array $AoA[1][0]; # 1st element of second array