zip — объединение списков

Оператор zip объединяет несколько списков в один, последовательно отбирая из каждого из них сначала первые элементы, затем вторые и так далее.

Например, если один массив содержит прописные буквы A и B, а другой — строчные a, b, результирующий массив будет содержать последовательность A, a, B, b.

Каждый из приведенных ниже трех вариантов выведет одну и ту же строку: 12345678.

my @odd = (1, 3, 5, 7);
my @even = (2, 4, 6, 8);
my @both = zip @odd, @even;
print @both;

my @odd = (1, 3, 5, 7);
my @even = (2, 4, 6, 8);
for zip @odd, @even
{
print;
}

my @odd = (1, 3, 5, 7);
my @even = (2, 4, 6, 8);
for zip @odd, @even -> ($a, $b)
{
print $a ~ $b;
}

Сравните последний пример с кодом из заметки «Оператор for — 7. Точка с запятой», где массивы и переменные цикла разделены точкой с запятой. Однако, это не работает с компилятором Pugs.