На этом шаге мы рассмотрим оператор безусловного перехода.
В языке программирования Perl есть три формы этого оператора:
goto МЕТКА; goto ВЫРАЖЕНИЕ; goto &ПОДПРОГРАММА;
Первая форма goto МЕТКА передает управление на оператор с меткой МЕТКА, который может быть расположен в любом месте программы, за исключением конструкций, требующих определенных инициирующих действий перед их выполнением. К ним относятся цикл foreach и определение подпрограммы sub.
Во второй форме оператора безусловного перехода goto ВЫРАЖЕНИЕ возвращаемым значением выражения должна быть метка, на которую и будет передано управление в программе. Эта форма оператора goto является аналогом вычисляемого goto языка FORTRAN:
@label = ("OUT", "IN"); goto $label[1];
В приведенном фрагменте кода выражение в операторе goto будет вычислено равным строке IN и именно на оператор с этой меткой будет передано управление.
Последняя форма оператора goto &ПОДПРОГРАММА подставляет вызов указанной в операторе подпрограммы в выполняемой в данной момент подпрограмме. Эта процедура осуществляется подпрограммами AUTOLOAD(), которые загружают одну подпрограмму, скрывая затем, что на самом деле сначала была вызвана другая подпрограмма.
На следующем шаге мы приведем несколько примеров использования рассмотренных операторов.