Size: a a a

2021 February 12

AK

Andrey Konovalov in Modern::Perl
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ
это что-то вроде ruby?
Что-то вроде Golang, но с человеческим синтаксисом от рубей и нормальным ООП
источник

ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in Modern::Perl
Andrey Konovalov
Что-то вроде Golang, но с человеческим синтаксисом от рубей и нормальным ООП
впринципе для телеграм бота пойдёт
источник

AK

Andrey Konovalov in Modern::Perl
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ
впринципе для телеграм бота пойдёт
Там Tourmaline есть для ботов. Но сейчас наверное и ещё гора всего появилась
источник

ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in Modern::Perl
Andrey Konovalov
Там Tourmaline есть для ботов. Но сейчас наверное и ещё гора всего появилась
думаю "попробовать на язычок" этот яп
источник

AK

Andrey Konovalov in Modern::Perl
По кристаллу доки хорошие, и классная книжка Иво Балбаэрта
источник

AS

Anton Selin in Modern::Perl
Andrey Konovalov
И я не знаю ни одного ЯП, для которого существовала бы книга, аналогичная Верблюду
Не понял посыла.)
источник

АК

Андрей Кузьмин... in Modern::Perl
Учебное пособие по CGI от Лёши.
источник

OP

Oleg Pronin in Modern::Perl
Andrey Konovalov
Народ, а бывают какие-то ORM для Perl, которые могут  ничего не делать в базе, а вместо этого выкидывать на выход списки SQL-операторов, которые нужно выполнить? Я просто не представляю, как можно какой-нибудь ORM с AnyEvent::MySQL юзать, например. А если бы ORM сам ничего с dbh не делал - это было бы элементарно
DBIx::Class
источник

OP

Oleg Pronin in Modern::Perl
Yuri Myasoedov
SQL::Abstract?
Это не orm
источник
2021 February 13

SZ

Sergey Zhmylove in Modern::Perl
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ
ладно как я понял Perl жив, можете порекомендовать мануалы по нему?
Лучше не стоит
источник

SZ

Sergey Zhmylove in Modern::Perl
Andrey Konovalov
Что-то вроде Golang, но с человеческим синтаксисом от рубей и нормальным ООП
Только вот это они от него наследовали это
источник

ВР

Василий Степанович Р... in Modern::Perl
Anton Selin
Всем привет. Изучаю Perl, и случайно наткнулся на неочевидную (для себя) вещь.
То, что push не выдает ошибку на undefined - это особенности внутренней реализации функции push?
В строке первой ошибки ты пытаешься взять массив от неопределённости. Без strict ты может и получил бы пустой массив. Но strict видимо дальше ошибки дела тут не ведёт.

А в строке второй ошибки ты берёшь элемент хеша по ключу неопределённости. Тут тебе ошибку не вывалили, элемент хеша создался, а дальше ты его уже объявляешь массивом и ты - в дамках. 😁
источник

ВР

Василий Степанович Р... in Modern::Perl
Sergey Zhmylove
Ну тогда почему же @{undef} в одном случае работает, а в другом нет?
@{$hash{undef}} - это не @{undef}, а это очень даже @{def}, т.к. $hash{undef} = уже имхо не undef, а def, хоть ключ этого элемента и не определён.
источник

ВР

Василий Степанович Р... in Modern::Perl
Vadim Goncharov
рамблер - это давняя печальная история эффективных менеджеров
Рамблер - давние дохляки. Им бы в их ситуации подыхания беречь бы юзеров своих. Так нет же. Примерно раз в пол года блокируют мне мыло из-за того, что я не хожу к дохлякам на сайт в веб интерфейс их дохлопочты. Ну я-то терпеливый - восстанавливаю мылодоступ к дохлякам. А сколько юзеоов они такими блокировками разогнали уж? 🤔
источник

ВР

Василий Степанович Р... in Modern::Perl
Vadim Goncharov
жаль, что ЖЖ попал к ним, и они его проебали, как и всё остальное
Да не они одни такие. Аська в мыло ру попала. Так те юзеров с неофициальными клиентами не просто разогнали. Они их уины вообще уничтожили. Негодяи. Рамблер хоть только пугает юзеров своих. Типа на понт только берёт их. А мыло ру юзеров вообще завалила. И без этого-то аська была уже не в моде под натиском аацапо телеграмо виберов и т.п. Но олды ещё юзали её как дань уважения своей молодости конца 90-х. А тут такое... 😲
источник

OP

Oleg Pronin in Modern::Perl
Василий Степанович Родин
@{$hash{undef}} - это не @{undef}, а это очень даже @{def}, т.к. $hash{undef} = уже имхо не undef, а def, хоть ключ этого элемента и не определён.
Нет. Результат $hash{nonexistent} это undef а не def даже в показанном вами примере. Тут работу делает функция push.

Это lvalue context. Ничего общего с autovivification который указывал вадим здесь нет. Последний работает в rvalue context.
В общих чертах: элементы массивов и хешей в lvalue контексте автосоздаются со значением undef. А затем естессно присвается чтото в них.

Пример с push более сложен чем кажется многим.

Во первых push на самом деле принимает arrayref, это лишь синтаксическая видимость что там просто array. Когда вы передаете туда @$arr, Никакого разыменования arrayref там нет, иначе бы сразу отьехали с эксепшеном когда там undef.
Push если ему передали lvalue undef апгрейдит его до arrayref. Если rvalue undef то вылетит.
А так как push провоцирует lvalue context, то элемент хеша автосоздается со значением undef, и этот lvalue undef уходит в пуш и апгрейдится.

Примеры
push @{undef()}, 1;
Вылет, изменение rvalue undef запрещено.

my $a = undef;
push @$a, 1;
Все ок, апгрейд lvalue undef до arrayref

my %h;

say $h{key1};
Rvalue context, элемент не создается.

$h{key1}++;
Lvalue context, элемент создается при поиске как undef, затем выполняется операция.

say $h{h}{key};
Оба поиска в rvalue context. Первый уровень создается механизмом autovivification.

$h{h}{key}++;
Первый поиск rvalue и создает autovivification, второй поиск lvalue, и создает undef через hash lvalue fetch

say @{$h{arr}};
Вылет. Разыменование всегда отьезжает на undefe

push @{$h{arr}}, 1;
Ок, lvalue context, результат lvalue undef, и далее в пуше он апгрейдится.
источник

SZ

Sergey Zhmylove in Modern::Perl
Oleg Pronin
Нет. Результат $hash{nonexistent} это undef а не def даже в показанном вами примере. Тут работу делает функция push.

Это lvalue context. Ничего общего с autovivification который указывал вадим здесь нет. Последний работает в rvalue context.
В общих чертах: элементы массивов и хешей в lvalue контексте автосоздаются со значением undef. А затем естессно присвается чтото в них.

Пример с push более сложен чем кажется многим.

Во первых push на самом деле принимает arrayref, это лишь синтаксическая видимость что там просто array. Когда вы передаете туда @$arr, Никакого разыменования arrayref там нет, иначе бы сразу отьехали с эксепшеном когда там undef.
Push если ему передали lvalue undef апгрейдит его до arrayref. Если rvalue undef то вылетит.
А так как push провоцирует lvalue context, то элемент хеша автосоздается со значением undef, и этот lvalue undef уходит в пуш и апгрейдится.

Примеры
push @{undef()}, 1;
Вылет, изменение rvalue undef запрещено.

my $a = undef;
push @$a, 1;
Все ок, апгрейд lvalue undef до arrayref

my %h;

say $h{key1};
Rvalue context, элемент не создается.

$h{key1}++;
Lvalue context, элемент создается при поиске как undef, затем выполняется операция.

say $h{h}{key};
Оба поиска в rvalue context. Первый уровень создается механизмом autovivification.

$h{h}{key}++;
Первый поиск rvalue и создает autovivification, второй поиск lvalue, и создает undef через hash lvalue fetch

say @{$h{arr}};
Вылет. Разыменование всегда отьезжает на undefe

push @{$h{arr}}, 1;
Ок, lvalue context, результат lvalue undef, и далее в пуше он апгрейдится.
Ну что ты наделал, он должен был сам это понять :(
источник

VG

Vadim Goncharov in Modern::Perl
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ
ладно как я понял Perl жив, можете порекомендовать мануалы по нему?
мануалы у перла отличные из коробки
источник

VG

Vadim Goncharov in Modern::Perl
Warstone
В соседнем чате перловом один уже пишет. Зовут Клименко. И еще есть API модуль для Телегама. Пишет Вадим (он тут есть). Можете скооперироваться.
для ботов на BotAPI это не нужно, всё проще
источник

VG

Vadim Goncharov in Modern::Perl
Василий Степанович Родин
Рамблер - давние дохляки. Им бы в их ситуации подыхания беречь бы юзеров своих. Так нет же. Примерно раз в пол года блокируют мне мыло из-за того, что я не хожу к дохлякам на сайт в веб интерфейс их дохлопочты. Ну я-то терпеливый - восстанавливаю мылодоступ к дохлякам. А сколько юзеоов они такими блокировками разогнали уж? 🤔
так всё правильно, добивают
источник