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 brackets $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 #### use Data::Dumper; print Dumper($r_array1, $r_array2); which prints out $VAR1 = [ [ 1, 2, 3, 4, 5 ] ]; $VAR2 = [ [ 6, 7, 8, 9, 10 ] ];