Recipe 4.10 Appending One Array to Another
4.10.1 Problem
You want to join two arrays by
appending all elements of one to the other.
4.10.2 Solution
Use
push:
# push
push(@ARRAY1, @ARRAY2);
4.10.3 Discussion
The push function is optimized for appending a
list to the end of an array. You can take advantage of Perl's list
flattening to join two arrays, but this results in significantly more
copying than push:
@ARRAY1 = (@ARRAY1, @ARRAY2);
Here's an example of push in action:
@members = ("Time", "Flies");
@initiates = ("An", "Arrow");
push(@members, @initiates);
# @members is now ("Time", "Flies", "An", "Arrow")
To insert the elements of one array into the middle of another, use
the splice function:
splice(@members, 2, 0, "Like", @initiates);
print "@members\n";
splice(@members, 0, 1, "Fruit");
splice(@members, -2, 2, "A", "Banana");
print "@members\n";
This is the output:
Time Flies Like An Arrow
Fruit Flies Like A Banana
4.10.4 See Also
The splice and push functions
in perlfunc(1) and Chapter 29 of
Programming Perl; the "List Values and Arrays"
section of Chapter 2 of Programming Perl; the
"List Value Constructors" section of perldata(1)
|