Вы можете использовать блок continue
везде, где это имеет смысл: с циклами while
, until
и foreach
, а также с «базовыми» блоками - блоками, которые не являются частью другого оператора.Обратите внимание, что вы можете использовать ключевое слово for
вместо foreach
для конструкции итерации списка, и, конечно, в этом случае вы можете иметь блок continue
.
Как и все остальные, for (;;)
у циклов уже есть часть continue
- какой из них вы хотите выполнить первым?
continue
блоки также не работают с do { ... } while ...
, потому что синтаксически это совсем другая вещь (do
встроенная функция, принимающая BLOCK в качестве аргумента, а часть while
является модификатором оператора).Я полагаю, вы можете использовать двойную фигурную конструкцию с ними (базовый блок внутри блока аргумента), если вам действительно нужно:
do {
{
...;
continue if $bad;
...;
}
continue {
...; # clean up
}
} while $more;