in reply to Creating two dimensional array and adding elements to it
In Perl, strictly speaking, arrays are only ever one dimensional and only ever contain scalar values. However, a reference to something, including array and hash somethings, is scalar, so a single dimensional array may contain elements that are references to other single dimensional arrays. Voila - two dimensional arrays.
For the full skinny see perllol, but to get you started you could create your array by one of:
my @array1 = (['a', 'b'], ['c', 'd']); my @ab = qw(a b); my @cd = qw(c d); my @array2 = (\@ab, \@cd); my @array3; push @array3, \@ab; push @array3, \@cd; my @array4; push @array4, (\@ab, \@cd);
or numerous variations on the theme. To access an element in the array you can:
print "$array1[0][0]\n\n"; for (my $x = 0; $x < @array1; ++$x) { for (my $y = 0; $y < @{$array1[$x]}; ++$y) { print "$array1[$x][$y] "; } print "\n"; } print "\n"; print "@$_\n" for @array1;
which prints:
a a b c d a b c d
|
|---|