Size: a a a

2021 August 06

SZ

Sergey Zhmylove in Modern::Perl
Какая реальность если убрать fatal?
источник

a

allter in Modern::Perl
Какая и ожидается.
На глубине 100 (захардкожено в Perl) вылетает варнинг про рекурсию, и эта рекурсия продолжается до победного конца (или OOM)
источник

SZ

Sergey Zhmylove in Modern::Perl
Почему ж с fatal не видно варнинга? Кто его глушит?
источник

a

allter in Modern::Perl
Тут не только нет варнинга. Но и результат выполнения программы не тот, какой ожидается. Т.е. если там критичные расчёты, то они молча будут неверны.
источник

a

allter in Modern::Perl
Получается, что с FATAL программа вообще интерпретируется некорректно, причём об этом никак не узнать.
источник

a

allter in Modern::Perl
Там, конечно, все это связано со сложным переплетением eval'ов и т.д. Поэтому, собственно, в перлдоке и предупреждают...
источник

SZ

Sergey Zhmylove in Modern::Perl
Я всё равно не понимаю, кто глушит варнинг. Он должен ведь выводиться в stderr даже когда включён fatal
источник

a

allter in Modern::Perl
При use warnings FATAL => ... варнинги конвертируются в эксепшны. И, как следствие, их можно обработать eval`ом и другими подобными инструментами.

Т.е. в моём примере нет никакой ошибки внутри Perl.
Просто оработчик then в Future заевален. И это исключение кладётся в промис.
Но это ооочень неочевидно. Вроде как с FATAL должно быть лучше, но получается хуже.
источник

SZ

Sergey Zhmylove in Modern::Perl
Бля, так оно что ли тупо делает die $message ?
Я что-то по коду пробежался, но слишком много чачи выпил уже, не работает глава
источник

SZ

Sergey Zhmylove in Modern::Perl
Хмм, судя по всему так и есть
источник

SZ

Sergey Zhmylove in Modern::Perl
@PerlBanjoBot use warnings FATAL => 'all';
eval { length } or 1;
time;
источник

P

PerlBanjoBot in Modern::Perl
Useless use of time in void context at script.pl line 11.
https://PerlBanjo.com/a5b81d119d
источник

a

allter in Modern::Perl
Ну, perl обещает, что да, warn заменяется на die. :) Но ожидание разработчиков, что с use warnings FATAL => xxx будет лучше, чем с просто use warnings xxx, но это не так.

В общем, надо использовать просто use warnings...
источник

MG

Mr. Good in Modern::Perl
Сколько можно зарабатывать удалённым мидлом на ставке? Фулстэк мидлом вернее, с Perl в основе
источник

a

allter in Modern::Perl
@PerlBanjoBot
use warnings FATAL => 'all';
eval { my $a = undef() + 42; 1; } or do {
 print "Eval error: $@\n";
};
my $b = undef() + 108;
print "Finish\n";
источник

P

PerlBanjoBot in Modern::Perl
Eval error: Use of uninitialized value in addition (+) at script.pl line 10.

Use of uninitialized value in addition (+) at script.pl line 13.
https://PerlBanjo.com/93df49338a
источник

SZ

Sergey Zhmylove in Modern::Perl
Я то же самое и показал
источник

a

allter in Modern::Perl
Ну, у тебя про length нет никаких варнингов (и не должно было быть) :)

А вот если бы в моём случае не было бы print "Eval error $@", то мы бы о кривизне никак не узнали
источник

W

Warstone in Modern::Perl
Зависит от скиллов. У нас (панда) ориентир 150-200. Больше может быть, но это уже не совсем миддл...
источник
2021 August 07

a

allter in Modern::Perl
А вы удалёнщикам сразу такой уровень даете? Или у вас онбординг в офисе? Я обнаружил, что онбордить на удаленке жуууть как сложно.
источник