Всем кто откликнулся, премного благодарен!
Согласен, что основная проблема здесь -- правильно выровнять (почистить) стек, а с этим лучше всего справится *evel* ср, 18 дек. 2024 г. в 12:34, Denis Evdokimov via Moscow-pm <[email protected] >: > На самом деле у тебя 2 задачи: > 1) вернуться в определенное место кода и почистит стек > 2) передать данные > Для 1) подойдёт: > last МЕТКА > eval+die > goto МЕТКА > > Для 2) подойдёт: > eval+die > Передавать какую-то ссылку через все функции, чтобы положить туда > результат, к примеру $self. > Положить в какую-то глобальную переменную > > > ср, 18 дек. 2024 г., 12:18 Иван Бессарабов via Moscow-pm <[email protected] > >: > >> goto — сделает ровно то что хочется. >> >> Все зависит от задачи, но вообще, обычно, считается что goto — это плохо. >> Так что может быть, нужно как-то пересмотреть условие задачи и переделать >> код так чтобы не было необходимости в использовании goto. >> >> Пример с goto: https://PerlBanjo.com/95d448df64 >> >> >> On Wed, Dec 18, 2024 at 8:03 AM Alessandro Gorohovski via Moscow-pm < >> [email protected]> wrote: >> >>> Уважаемое сообщество, приветствую! >>> >>> Подскажите, может кто-нибудь знает, >>> способ глобально выйти (сделать return) из вложенных подпрограмм >>> (функций) по метке, >>> т.е. аналогично *last* для управления циклом >>> ? >>> >>> Например: >>> >>> _Metka: >>> &aaa( @args ); >>> >>> $@ && say $@; >>> exit; >>> #-------------------- >>> sub aaa { >>> # ... >>> &bbb; >>> # ... >>> } >>> #-------------------- >>> sub bbb { >>> # ... >>> &ccc; >>> # ... >>> } >>> #-------------------- >>> sub ccc { >>> # ... >>> &ccc; >>> # ... >>> $@ = $results; >>> return _Metka; >>> } >>> >>> -- >>> Moscow.pm mailing list >>> [email protected] | http://moscow.pm.org >>> >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org >> > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
