Size: a a a

2020 March 31

AP

Anton Petrusevich in Modern::Perl
basiliscos
это ж проверить можно 1 раз. Потом путь (.b.c.d.e) запоминается, и уже он возвращается. Поэтому 1-й раз можно медленно и в перле.
С инвалидацией как? Когда меняется секция в середине пути, например
источник

b

basiliscos in Modern::Perl
а с каких пор конфиги стали не рид-онли?
источник

b

basiliscos in Modern::Perl
но если редко меняется, то $config = something::compile($new_config)
источник

AP

Anton Petrusevich in Modern::Perl
basiliscos
а с каких пор конфиги стали не рид-онли?
ну, чисто теоретически, бывает надо сделать какому-то хендлеру, например local $c->{a}{handler} = ...
источник

b

basiliscos in Modern::Perl
рекомпилить тогда со сбросом кэшей, если это редко / пару раз за время жизни прилаги
источник

AP

Anton Petrusevich in Modern::Perl
конфиги не всегда ридонли. они в основном ридонли, это да. но некоторые их части вполне могут быть динамическими, например, связанные с трансляцией языков
источник

b

basiliscos in Modern::Perl
если "правильно" прилага написана, т.е. явная инициализация всего в main происходит, то тогда легко - всё набирается на этапе конфигурации/предстарта, потом компилится и стартует. Если этапа конфига нет, или он неявный, или lazy, то тогда, да, проблема.
источник

AP

Anton Petrusevich in Modern::Perl
я исхожу или lazy/dynamic
источник

МИ

Михаил Иванов in Modern::Perl
Касательно доступа к любым узлам — я вот это использую https://metacpan.org/pod/JSON::Path
источник

МИ

Михаил Иванов in Modern::Perl
Там и вперёд и назад и предикаты - всё как надо
источник

МИ

Михаил Иванов in Modern::Perl
но про иксес даже не проверял, не было необходимости
источник

AP

Anton Petrusevich in Modern::Perl
да все эти *path — понятное дело, но парсить это на каждый реквест, с проверкой каждого узла на андеф — это  я в данный момент считаю неразумным. от того и речь про иксес.
источник

VG

Vadim Goncharov in Modern::Perl
зачем на каждый? в Data::DPath создаешь один раз объект на структуру
источник

AP

Anton Petrusevich in Modern::Perl
я потерял нить и не понимаю что ты мне говоришь. с учётом моих пояснений и комментариев что я уже сделал
источник

VG

Vadim Goncharov in Modern::Perl
Михаил Иванов
Касательно доступа к любым узлам — я вот это использую https://metacpan.org/pod/JSON::Path
чем оно лучше https://metacpan.org/pod/Data::DPath ?
источник

AP

Anton Petrusevich in Modern::Perl
Vadim Goncharov
зачем на каждый? в Data::DPath создаешь один раз объект на структуру
ты, кстати, его сорцы смотрел? у него по сути свой ассемблер матчинга и его интерпретатор на перле
источник

VG

Vadim Goncharov in Modern::Perl
да, конечно смотрел
источник

AP

Anton Petrusevich in Modern::Perl
ну это мало похоже на то, что я ищу
источник

VG

Vadim Goncharov in Modern::Perl
еще и Safe ему отрывал
источник

VG

Vadim Goncharov in Modern::Perl
так ты по сути свой роутинг хочешь, это мало похоже на генерализованную задачу деревянных структур
источник