A good way to find out what's going on if references start to get confusing is to use the module Data::Dumper, like this:my $r_array = [1,2,3]; # make an array and put a reference to it in $r +_array. - note square brackets my @array = (1,2,3); #make an array called @array - note normal bracke +ts $r_array = \@array; #then put a reference to @array in $r_array sub foo {return [1,2,3]) #this sub returns a reference to an array $r_array = foo(); #you could call it like this
and that shows you that $r_array1 actually contains a reference to a reference to an array (because there are two levels of square brackets).use Data::Dumper; print Dumper($r_array1, $r_array2); which prints out $VAR1 = [ [ 1, 2, 3, 4, 5 ] ]; $VAR2 = [ [ 6, 7, 8, 9, 10 ] ];
The best explanation of reference syntax is (imho) in Effective Perl Programming. You might also find perlref useful, if you haven't already looked at it.
andy.
In reply to Re: Passing references out of subroutines
by andye
in thread Passing references out of subroutines
by nysus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |