Size: a a a

2021 January 26

W

Warstone in Modern::Perl
Аналог из C# - это что-нибудь типа: OnChanged?.Invoke(old_value, new_value). Тут нас интересует "?". Если OnChanged не задано, то то что после "." не выполнится. Такая удобная форма записи:
if(OnChanged != null)
 OnChnaged.Invoke(old_value, new_value);
источник

OP

Oleg Pronin in Modern::Perl
Andrey Konovalov
Подскажите, есть ли уже пакет, умеющий генерить sub'ы в таком духе: sub json { state $json; $json //= JSON->new }
Речь не о json конкретно, с ним понятно, что переменная намного дешевле. Речь в принципе об отложенном создании объектов
А в чем тайный смысл
sub json { state $json; $json //= JSON->new }
?
Чем это отличается от
sub json { state $json = JSON->new }
Кроме лишней проверки каждый раз?
источник

AK

Andrey Konovalov in Modern::Perl
Oleg Pronin
А в чем тайный смысл
sub json { state $json; $json //= JSON->new }
?
Чем это отличается от
sub json { state $json = JSON->new }
Кроме лишней проверки каждый раз?
Хм... Ничем, Вы правы
источник

OP

Oleg Pronin in Modern::Perl
Я только одно отличие вижу, что если конструктор вернет undef, то в вашем варианте он будет пытаться создать обьект при след вызове еще раз.
источник

OP

Oleg Pronin in Modern::Perl
Но врядли это релевантно
источник

AK

Andrey Konovalov in Modern::Perl
Согласен, суть вообще не в этом.
источник

OP

Oleg Pronin in Modern::Perl
Суть я понял)
источник

OP

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

AK

Andrey Konovalov in Modern::Perl
Странно, что Scalar::Defer есть, а таких генераторов инстансов на лету и только по необходимости нет.
источник

OP

Oleg Pronin in Modern::Perl
Через классовый ауесор можно вывернуться с дефолтным значением через сабрефу но проблема в том что короче не будет. Это и так одна короткая строка. Генератор никак не сокращает особо код
источник

AK

Andrey Konovalov in Modern::Perl
Oleg Pronin
Через классовый ауесор можно вывернуться с дефолтным значением через сабрефу но проблема в том что короче не будет. Это и так одна короткая строка. Генератор никак не сокращает особо код
источник

AK

Andrey Konovalov in Modern::Perl
Сам Defer так выглядит
источник

AK

Andrey Konovalov in Modern::Perl
То есть это не синглтон по сути. В каждом пакете будет своя копия
источник

W

Warstone in Modern::Perl
А в чем сакральный смысл всего этого?
источник

AK

Andrey Konovalov in Modern::Perl
Warstone
А в чем сакральный смысл всего этого?
Если объект в течение жизни сервиса не понадобился - то и хорошо. Если понадобился - создастся в момент, когда будет нужен. Например, для всяких сервисов с протухающими соединениями полезно
источник

W

Warstone in Modern::Perl
Как раз нет. Вы один раз создали, соединение протухло, но оно создано
источник

AK

Andrey Konovalov in Modern::Perl
Warstone
Как раз нет. Вы один раз создали, соединение протухло, но оно создано
И толку мне с него? Новое соединение будет куда менее проблемным, нежели выяснение, не сдохло ли старое
источник

W

Warstone in Modern::Perl
Так нового не будет судя по тому что вы хотите добиться.
источник

W

Warstone in Modern::Perl
Или я чего-то не понимаю..
источник

AK

Andrey Konovalov in Modern::Perl
Warstone
Так нового не будет судя по тому что вы хотите добиться.
auth_ldap->search()
Пока я не вызову auth_ldap где-то в эндпойнте веб-сервиса - никакого LDAP-соединения не будет.
источник