Курс языка программирования Raku / Продвинутый уровень / Порядок выполнения / Префиксы инструкций / do и значение блока

Тест — do

Что напечатает следующая программа?

my $s = do given -3 {
    when $_ < 0 { 'neg' }
    default     { 'nonneg' }
};
say $s;
1neg
0nonneg
0-3
0Nil

do работает перед управляющими конструкциями, а не только перед обычными блоками. Здесь do given превращает всю конструкцию given/when в выражение. Топик -3 соответствует условию $_ < 0, поэтому выражение возвращает 'neg', которое сохраняется в $s.

Навигация по курсу

do и значение блока   |   Ленивость и немедленность