goto
Синтаксис
goto МЕТКА goto ВЫРАЖЕНИЕ goto &ИМЯ
Описание
Оператор goto в варианте МЕТКА пытается найти в тексте программы метку МЕТКА и передать
управление оператору, следующему за этой меткой. Этот оператор не может использоваться для
передачи управления внутрь конструкций, требующих дополнительной инициализации, таких как
подпрограммы или циклы foreach. Кроме того, не допускается передача управления внутрь
оптимизированных конструкций или для выхода из блока или подпрограммы, обрабатываемой функцией
sort.
В то же время в пределах динамической области видимости этот оператор может применяться практически
повсеместно, включая возможность выхода из подпрограмм, однако на практике удобнее в этих
случаях пользоваться конструкциями
last или
die.
Формат «goto ВЫРАЖЕНИЕ» предполагает использовать имя метки, которое формируется динамически
в процессе выполнения программы. Это позволяет реализовать вычисляемый переход, аналогичный
используемому в FORTRAN. Однако использование этого механизма значительно затрудняет оптимизацию программы:
goto ("FOO", "BAR", "GLARCH") [$i] ;
Последний вариант использования оператора — «goto &ИМЯ», относится к категории «таинственных»
механизмов Perl и представляет собой переход из текущей подпрограммы в другую, имя которой указано в
аргументе оператора. Этот трюк применяется в подпрограммах AUTOLOAD, которые вызывают другие подпрограммы
и затем передают им полное управление процессом, устраняясь из работы. После выполнения оператора
перехода вызвавший первоначальную подпрограмму процесс уже не сможет определить, какая подпрограмма была вызвана вначале.
Thanks
2023-11-16 22:30:18 Svetlana Thank you very useful information
Оставить комментарий:
|
|