$ perl -Mstrict -Mwarnings -e ' use Data::Dumper; my @matrix; for my $i (0 .. 1) { for my $j (0 .. 1) { $matrix[$i][$j]{row} = $i; $matrix[$i][$j]{col} = $j; } } print Dumper \@matrix; ' $VAR1 = [ [ { 'col' => 0, 'row' => 0 }, { 'col' => 1, 'row' => 0 } ], [ { 'col' => 0, 'row' => 1 }, { 'col' => 1, 'row' => 1 } ] ];