Добрый вечер. Сегодня мы поговорим о простом ключевом слове for, которое в Perl 6 сильно преобразилось по сравнению с тем, как это было в Perl 5.
Самый простой вариант — взять массив и пройтись по нему:
my @a = < alpha beta gamma delta >; for @a { say $_; }
Более синтаксически выразительный вариант этого же цикла:
.say for @a;
Пока что в качестве переменной цикла работала переменная по умолчанию $_. Именованную переменную можно создать, используя стрелку:
for @a -> $x { say $x; }
Обратите внимание, что my для создания переменной в этом случае не нужен.
Точно также можно ввести вторую переменную:
for @a -> $x, $y { say "$x $y"; }
Теперь на каждой итерации из массива будут читаться два значения, которые попадут в переменные $x и $y:
alpha beta gamma delta
Это очень удобно использовать, например, для итерации по ключам и значениям хеша:
my %h = alpha => 'a', beta => 'b', gamma => 'c', delta => 'd'; for %h.kv -> $greek, $latin { say "$greek=$latin"; }
Метод kv возвращает список из чередующихся ключей и значений хеша.
1) for с проверкой типа:
2) for с «распаковкой аргумента»:
Вот это приятно. Не нужно городить кучу вложенных переборов.
3) for с Loop Phasers:
https://docs.perl6.org/language/phasers#Loop_Phasers
4) for с next, redo, last
5) for с read-write
6) for с default values