use strict; use warnings; use Data::Dumper; my $a = [[0,1,2], [10,11,12]]; print \$a->[0][0], "\n"; print \$a->[0][1], "\n"; print \$a->[0][2], "\n"; print \$a->[1][0], "\n"; print \$a->[1][1], "\n"; print \$a->[1][2], "\n"; print "=======\n"; print \$_, "\n" for map @$_, @{$a};#one of your way print "=======\n"; foreach (@$a) { print \$_, "\n" foreach @$_ }#your other way