Array functions and operators act on entire arrays. Some return a list, which can then either be used as a value for another array function, or assigned into an array variable.
Probably the most important array operator is the array assignment operator, which gives an array variable a value. It is an equal sign, just like the scalar assignment operator. Perl determines whether the assignment is a scalar assignment or an array assignment by noticing whether the assignment is to a scalar or an array variable. For example:
@fred = (1,2,3); # The fred array gets a three-element literal @barney = @fred; # now that is copied to @barney
If you assign a scalar value to an array variable, the scalar value becomes the single element of an array:
@huh = 1; # 1 is promoted to the list (1) automatically # that is, @huh now is (1)
An array variable name may appear in a list-literal list. When the value of the list is computed, Perl replaces the array variable name with the current values of the array, like so:
@fred = qw(one two); @barney = (4,5,@fred,6,7); # @barney becomes # (4,5,"one","two",6,7) @barney = (8,@barney); # puts 8 in front of @barney @barney = (@barney,"last"); # and a "last" at the end # @barney is now (8,4,5,"one","two",6,7,"last")
Note that the inserted array elements are at the same level as the rest of the literals: a list cannot contain another list as an element.
If a list literal contains only variable references (not expressions), ...