Perl CookbookPerl CookbookSearch this book

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)



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.