Size: a a a

2021 January 30

R

Roman in Modern::Perl
Да, странно, сбрасывается. Но помню, наступал я на эту бяку. Все равно рекомендую ориентироваться на возращаемое значение, это надежнее.
источник

IB

Ivan Bessarabov in Modern::Perl
Vyacheslav Olkhovchenkov
а напомните (а то я пропустил) если надо перехватить всякие die то норм писать так:
eval { .... };
if($@) { ..... };
В простых случаях это сработает, но есть некоторые ситуации когда это приведет к проблемам. Один из вариантов — использовать Try::Tiny в котором все это учтено. Что плохое может случиться при использовании eval описано вот в этом разделе: https://metacpan.org/pod/Try::Tiny#BACKGROUND
источник

R

Roman in Modern::Perl
Да, вероятно в моем случае было смешение Try::Tiny и eval.
источник

R

Roman in Modern::Perl
perl -wE 'use strict; use Try::Tiny; eval { die "zhopa" }; try { }; say $@'
источник

IB

Ivan Bessarabov in Modern::Perl
Ага
источник

IB

Ivan Bessarabov in Modern::Perl
Смешение try и eval
источник

IB

Ivan Bessarabov in Modern::Perl
Эх, очень неудобно что в PerlBanjo.com есть только модули которые идут вместе с перлом.
источник
2021 January 31

SZ

Sergey Zhmylove in Modern::Perl
Ivan Bessarabov
Эх, очень неудобно что в PerlBanjo.com есть только модули которые идут вместе с перлом.
Всё в твоих руках :)
источник

IB

Ivan Bessarabov in Modern::Perl
Sergey Zhmylove
Всё в твоих руках :)
=) Вот я себя и мотивирую что это нужно сесть и сделать
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
Ivan Bessarabov
В простых случаях это сработает, но есть некоторые ситуации когда это приведет к проблемам. Один из вариантов — использовать Try::Tiny в котором все это учтено. Что плохое может случиться при использовании eval описано вот в этом разделе: https://metacpan.org/pod/Try::Tiny#BACKGROUND
не, такое я не использую
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
правда может какой-то другой модуль использует?
источник

AP

Anton Petrusevich in Modern::Perl
Roman
Да, странно, сбрасывается. Но помню, наступал я на эту бяку. Все равно рекомендую ориентироваться на возращаемое значение, это надежнее.
бывает какая-то вот такая ботва, но я сейчас тоже подробности не вспомню https://perlbanjo.com/8eeb95e0c6
источник

S

Sergey in Modern::Perl
Roman
Да, странно, сбрасывается. Но помню, наступал я на эту бяку. Все равно рекомендую ориентироваться на возращаемое значение, это надежнее.
В 5.22 правили стек сильно, вроде там и зачинили. Раньше было по другому. А eval+do работает везде одинаково хорошо.
источник

R

Roman in Modern::Perl
В 5.16 тоже чистит.
источник

SZ

Sergey Zhmylove in Modern::Perl
Anton Petrusevich
бывает какая-то вот такая ботва, но я сейчас тоже подробности не вспомню https://perlbanjo.com/8eeb95e0c6
Очень спорный пример ;)
источник

OP

Oleg Pronin in Modern::Perl
Anton Petrusevich
бывает какая-то вот такая ботва, но я сейчас тоже подробности не вспомню https://perlbanjo.com/8eeb95e0c6
А что не так? eval сбросил ошибку потому что не было эксепшена в евале
источник

AP

Anton Petrusevich in Modern::Perl
Oleg Pronin
А что не так? eval сбросил ошибку потому что не было эксепшена в евале
а где был?
источник

OP

Oleg Pronin in Modern::Perl
Во внутреннем евале который ты не увидишь
источник

OP

Oleg Pronin in Modern::Perl
источник

OP

Oleg Pronin in Modern::Perl
Все методы дестрой вызываются с флагом G_EVAL
источник