my $matrix_ref; for(0..$length2 { for(0..$length1) { @test = populate($length1); $matrix_ref->[$row][$col] = \@test; } } for(0..$length2) { print "["; for(0..$length1) { print "$matrix_ref->[$row][$col][$_] "; } print "] \n\n"; } } sub populate { my $elements = shift; my @ary; push @ary, $matrix[$element]; $element ++; return @ary; }