понедельник, 21 сентября 2015 г.

Не так страшен goto, как его малюют

goto LABEL
goto EXPR
goto &NAME


goto LABEL - продолжить выполнение с LABEL. С помощью неё нельзя войти в подпрограмму, цикл и любую другую конструкцию, для которой необходимо задать начальные условия.

goto EXPR - выберет метку, полученную из EXPR. goto "PHO" . "TO"

goto "PHO" . "TO";
print "обделили вниманием\n";
PHOTO: print "Олень\n";

Напечатает: Олень

goto &NAME - заменяет выполнение на подпрограмму (блок кода) NAME, передавая ей текущее значение @_.

sub def { goto &abc }
sub abc { print '[ ' . shift . ' ]' }
def('Лось');

Напечатает: [ Лось ]

Комментариев нет:

Отправить комментарий