Appending One Array to Another (Perl Cookbook, 2nd Edition)

## 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)

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