my $array_1 = [ 1, 2, 3 ]; # 1d my $array_2 = [ [1, 2, 3], [1, 2, 3], [1, 2, 3] ]; #2d my $array_3 = [ [ [1, 2, 3], [1, 2, 3], [1, 2, 3] ], [ [1, 2, 3], [1, 2, 3], [1, 2, 3] ], [ [1, 2, 3], [1, 2, 3], [1, 2, 3] ], ]; # 3d ... etc. #### $array_1->[$x]; $array_2->[$x][$y]; $array_3->[$x][$y][$z]; ... etc. #### my %array = (); $array{$x1,$y1,$z1} = something; $array{$x2,$y2,$z2} = something else; ...