Size: a a a

2021 February 26

SL

Sergiy Leschenko in Modern::Perl
Или anу
источник

DF

Denis F in Modern::Perl
Почему?
источник

VG

Vadim Goncharov in Modern::Perl
Anton Petrusevich
грепы в тернарном операторе, как и мапы и прочее подобное — я представить себе такое даже не могу... :)
мапы представить себе могу
источник

mb

mr bbon in Modern::Perl
Так, в тернарном операторе any поведёт себя ровно также, как и grep, то есть - плохо
https://perlbanjo.com/c93cc6be30
Да, видимо и first тоже..
источник

О

Оскар in Modern::Perl
mr bbon
Так, в тернарном операторе any поведёт себя ровно также, как и grep, то есть - плохо
https://perlbanjo.com/c93cc6be30
Да, видимо и first тоже..
Нормально ведёт себя. Различие в том, что grep будет весь список значений и обрабатывать и возвращать все что сматчилось
источник

mb

mr bbon in Modern::Perl
Оскар
Нормально ведёт себя. Различие в том, что grep будет весь список значений и обрабатывать и возвращать все что сматчилось
там речь не о скорости, а о поведении. Оно одинаково, что для grep, что для any, разве что вместо нуля - пустое значение возвращает
источник

О

Оскар in Modern::Perl
Нормальное поведение. Скобки чем не нравятся?
источник

SS

Stanislav Skirov in Modern::Perl
mr bbon
там речь не о скорости, а о поведении. Оно одинаково, что для grep, что для any, разве что вместо нуля - пустое значение возвращает
прислушайся, пацаны дело говорят . use fuckin bracesparentheses
источник

VG

Vadim Goncharov in Modern::Perl
parentheses только
источник

SS

Stanislav Skirov in Modern::Perl
😳.
источник

SZ

Sergey Zhmylove in Modern::Perl
mr bbon
там речь не о скорости, а о поведении. Оно одинаково, что для grep, что для any, разве что вместо нуля - пустое значение возвращает
Там «в моем сообщении» речь как раз о скорости и проходить по массиву не кладя его в хеш, как я писал ранее, целесообразно только когда массив реально длинный. И any тут выиграет
источник
2021 February 27

AK

Andrey Konovalov in Modern::Perl
Коллеги, а кто что думает на тему вопроса, который ещё @nuclight задавал: как сделать так, чтобы
$debug and $log_debug->(Dumper($very_large_thing_like_elephant))
- вообще не выполнялось ни в каком виде, если дебаг отключен.
Я думаю это сделать на source filter'ах всё же...
<<debug('something')/>>
элементарно заменяется на $log_debug->('something'), если это нужно, и удаляется полностью, если не нужно.
Не очень понятно, почему для таких простых случаев source filter'ы не используются? Портят внешний вид кода?
источник

W

Warstone in Modern::Perl
Andrey Konovalov
Коллеги, а кто что думает на тему вопроса, который ещё @nuclight задавал: как сделать так, чтобы
$debug and $log_debug->(Dumper($very_large_thing_like_elephant))
- вообще не выполнялось ни в каком виде, если дебаг отключен.
Я думаю это сделать на source filter'ах всё же...
<<debug('something')/>>
элементарно заменяется на $log_debug->('something'), если это нужно, и удаляется полностью, если не нужно.
Не очень понятно, почему для таких простых случаев source filter'ы не используются? Портят внешний вид кода?
https://metacpan.org/pod/XLog

Именно так и работает. Для этого и делали.
источник

W

Warstone in Modern::Perl
То есть
my $a = 1;
XLog::info('$a = %d\n', $a++);
print "$a\n"
В зависимости от выставленного XLog::set_level будет или 1 или 2.
источник

AK

Andrey Konovalov in Modern::Perl
Warstone
https://metacpan.org/pod/XLog

Именно так и работает. Для этого и делали.
Сдаётся мне, он просто делает *{'XLog::info'} = sub {};
источник

W

Warstone in Modern::Perl
Вы код посмотрите.
источник

W

Warstone in Modern::Perl
Подскажу: Магия находится вот тут: https://metacpan.org/source/SYBER/XLog-1.0.3/xs%2Futil.cc
Там идет патчинг дерева вызова
источник

AK

Andrey Konovalov in Modern::Perl
Хм... Я мало что понимаю в XS
источник

AK

Andrey Konovalov in Modern::Perl
Ну то есть эта штука имеет дело не с текстом программы, а с её AST-деревом, как нормальный макропроцессор что ли?
источник

W

Warstone in Modern::Perl
С деревом выполнения кода в режиме рантайма. То есть первый раз лог вызовется, во время вызова код лога попытается заоптимайзить дерево выолнения кода (Перл так хранит свои программы в памяти) и во второй раз саба не будет вызвана.
источник