my @array = (1, 2, 3, 4, 5, 6, 7, 8); my @new_array = map{ [$array[2 * $_ - 1], $array[2 * $_]] } 1 .. @array/2;