From an.gorohovski на gmail.com Wed Dec 18 00:02:51 2024 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Wed, 18 Dec 2024 11:02:51 +0300 Subject: [Moscow.pm] =?utf-8?b?cmV0dXJuINC/0L4g0LzQtdGC0LrQtQ==?= Message-ID: Уважаемое сообщество, приветствую! Подскажите, может кто-нибудь знает, способ глобально выйти (сделать return) из вложенных подпрограмм (функций) по метке, т.е. аналогично *last* для управления циклом ? Например: _Metka: &aaa( @args ); $@ && say $@; exit; #-------------------- sub aaa { # ... &bbb; # ... } #-------------------- sub bbb { # ... &ccc; # ... } #-------------------- sub ccc { # ... &ccc; # ... $@ = $results; return _Metka; } ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From ivan на serezhkin.com Wed Dec 18 00:48:05 2024 From: ivan на serezhkin.com (Ivan Serezhkin) Date: Wed, 18 Dec 2024 12:48:05 +0400 Subject: [Moscow.pm] =?utf-8?b?cmV0dXJuINC/0L4g0LzQtdGC0LrQtQ==?= In-Reply-To: References: Message-ID: <639911734511669@mail.yandex.ru> Вложение в формате HTML было извлечено… URL: From ivan на bessarabov.ru Wed Dec 18 01:17:47 2024 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Wed, 18 Dec 2024 09:17:47 +0000 Subject: [Moscow.pm] =?utf-8?b?cmV0dXJuINC/0L4g0LzQtdGC0LrQtQ==?= In-Reply-To: References: Message-ID: 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 > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From spryatalso на gmail.com Wed Dec 18 01:27:53 2024 From: spryatalso на gmail.com (Kirill Kirill) Date: Wed, 18 Dec 2024 12:27:53 +0300 Subject: [Moscow.pm] =?utf-8?b?cmV0dXJuINC/0L4g0LzQtdGC0LrQtQ==?= In-Reply-To: References: Message-ID: Нет в goto ничего плохого, если оно не раскидано по всему коду и применяется с умом там где это необходимо Ср, 18 дек. 2024 г. в 12:18, Иван Бессарабов via Moscow-pm : > 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 > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From evdokimov.denis на gmail.com Wed Dec 18 01:33:47 2024 From: evdokimov.denis на gmail.com (Denis Evdokimov) Date: Wed, 18 Dec 2024 12:33:47 +0300 Subject: [Moscow.pm] =?utf-8?b?cmV0dXJuINC/0L4g0LzQtdGC0LrQtQ==?= In-Reply-To: References: Message-ID: На самом деле у тебя 2 задачи: 1) вернуться в определенное место кода и почистит стек 2) передать данные Для 1) подойдёт: last МЕТКА eval+die goto МЕТКА Для 2) подойдёт: eval+die Передавать какую-то ссылку через все функции, чтобы положить туда результат, к примеру $self. Положить в какую-то глобальную переменную ср, 18 дек. 2024 г., 12:18 Иван Бессарабов via Moscow-pm : > 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 > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Wed Dec 18 03:24:00 2024 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Wed, 18 Dec 2024 14:24:00 +0300 Subject: [Moscow.pm] =?utf-8?b?cmV0dXJuINC/0L4g0LzQtdGC0LrQtQ==?= In-Reply-To: References: Message-ID: Всем кто откликнулся, премного благодарен! Согласен, что основная проблема здесь -- правильно выровнять (почистить) стек, а с этим лучше всего справится *evel* ср, 18 дек. 2024 г. в 12:34, Denis Evdokimov via Moscow-pm : > На самом деле у тебя 2 задачи: > 1) вернуться в определенное место кода и почистит стек > 2) передать данные > Для 1) подойдёт: > last МЕТКА > eval+die > goto МЕТКА > > Для 2) подойдёт: > eval+die > Передавать какую-то ссылку через все функции, чтобы положить туда > результат, к примеру $self. > Положить в какую-то глобальную переменную > > > ср, 18 дек. 2024 г., 12:18 Иван Бессарабов via Moscow-pm >: > >> 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: From ivan на serezhkin.com Wed Dec 18 04:28:06 2024 From: ivan на serezhkin.com (Ivan Serezhkin) Date: Wed, 18 Dec 2024 16:28:06 +0400 Subject: [Moscow.pm] =?utf-8?b?cmV0dXJuINC/0L4g0LzQtdGC0LrQtQ==?= In-Reply-To: References: Message-ID: <690641734524703@mail.yandex.ru> Вложение в формате HTML было извлечено… URL: