[Moscow.pm] return по метке

Alessandro Gorohovski an.gorohovski на gmail.com
Ср Дек 18 03:24:00 PST 2024


Всем кто откликнулся, премного благодарен!

Согласен, что основная проблема здесь -- правильно выровнять (почистить)
стек,
а с этим лучше всего справится *evel*


ср, 18 дек. 2024 г. в 12:34, Denis Evdokimov via Moscow-pm <moscow-pm на pm.org
>:

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


Подробная информация о списке рассылки Moscow-pm