in reply to What do I do wrong? I want an array of arrays
Where am I wrong?
almost every line? :)
Let's deal with this by running the program. first trun on strict and wranings warnings. See my first 2 lines in the code
use strict; use warnings; my @b; my @c={ 22,44,55}; my @d={ "yy","tt"}; $b[0]=@c; # are you trying to create 2-D array? $b[1]=@d; my @e= $b[1]; # i think you want b as 2-D array print "<$e[0]>\n";
when you run it as is you get this warning
Odd number of elements in anonymous hash at nov line 7.<1> Once you change {} to () the code works but it does not do what you want. See $b[0] is a scalar and an array when evaluated under the scalar context returns the lenght of the array so bascially $b[0] = @c; will put 3 into $b[0] or the first element of b.
If you want to do 2-D arrays you want to send them as references.
The code below does that
use strict; use warnings; my @b; my @c=( 22,44,55); # changed to () my @d=( "yy","tt"); # changed to () $b[0]=\@c; # \@ creates a reference to the array @c. $b[1]=\@d; my @e= @{$b[1]}; # $b[1] is an array ref so use @{} to get back +the list. print "<$e[0]>\n";
output:
<yy>
hope this helps
|
---|
In Section
Seekers of Perl Wisdom