Appending One Array to Another

Problem

You want to join two arrays by appending all the elements of one to the end of the other.

Solution

Use push:

# push push(@ARRAY1, @ARRAY2);

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 it 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")

If you want 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 output:

Time Flies Like An Arrow Fruit Flies Like A Banana

See Also

The splice and push functions in perlfunc (1) and of Perl Developing; the "List Values and Arrays" section of of Perl Developing; the "List Value Constructors" section of perldata (1)