Don't forget to escape square brackets, the left one is all
you really need to worry about: [@array]
Anyways ... [@array] copies the contents
of the array into a new anonymous array reference. I
think the name for the collection of those contents
is called a list ... so you could say that the
l-value of [@array] is an anymous array that
contains a copy of @array's list ... i think.
Understanding the difference between Perl's lists and
arrays can be tricky, and i often get it wrong. :/
Here is some more code to study:
#!/usr/bin/perl -l
use strict;
use warnings;
use Data::Dumper;
my @array = 0..4;
my $ref1 = \@array;
my $ref2 = \@array;
my $copy1 = [@array];
my $copy2 = [@array];
print Dumper $ref1,$copy1;
print for ($ref1,$ref2,$copy1,$copy2);
undef @array;
print Dumper $ref2,$copy2;
|