From asan999 на gmail.com Sun Jan 3 11:24:26 2016 From: asan999 на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCQ0YHRj9C60LjQvQ==?=) Date: Sun, 3 Jan 2016 22:24:26 +0300 Subject: [Moscow.pm] =?utf-8?b?0JHQtdC30L7Qv9Cw0YHQvdC+0YHRgtGMIFBlcmw=?= In-Reply-To: <1451475869.145833829@f356.i.mail.ru> References: <1451390803.1355.0@smtp.mail.ru> <1451474763.132748963@f98.i.mail.ru> <1451475869.145833829@f356.i.mail.ru> Message-ID: <5689756A.5030403@gmail.com> On 12/30/2015 02:44 PM, Илья Винокуров wrote: > Сорри, ошибся. > > Вот так работает: > > perl -e 'use strict; use warnings; use CGI; my $fd = "ARGV"; > while(<$fd>){ print }' '/sbin/ifconfig|' > Да оно в любом виде работает, perl -e 'while(<>){ print }' "/sbin/ifconfig|" echo 'cat\ /etc/passwd|' | xargs perl -E 'while (<>) { print }' такой это спецслучай, и open c 2 аргуменьами так себя ведет. для удобства кстати, а то знатоки по безопасности (это я про доклад, который не смотрел и не буду) такого наворотят селектами, да пайпами... Или я не о том, смутил в примере CGI. даже установить пришлось) > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | > http://moscow.pm.org > > > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kes-kes на yandex.ru Wed Jan 6 03:50:24 2016 From: kes-kes на yandex.ru (KES) Date: Wed, 06 Jan 2016 13:50:24 +0200 Subject: [Moscow.pm] =?koi8-r?b?RndkOiDwz97FzdUgzcXO0cXU09Eg09TB0s/FINrO?= =?koi8-r?b?wd7FzsnFLCDIz9TRINDF0sXNxc7OwdEgzM/LwczJ2snSz9fBzsE/?= In-Reply-To: <718141452080791@web5h.yandex.ru> Message-ID: <726421452081024@web5h.yandex.ru> День добрый. Локализация $DB::single работает без проблем, но если брать ссылку на неё, то возникают проблемы: The localization of $DB::single works fine, but the reference to it does not work:         {                 $DB::single = 7; my $x = \$DB::single;                 print "Before: ". \$DB::single ." <<$x $$x\n";                 local $DB::single = 0;                 print "After: ". \$DB::single ." <<$x $$x\n";         } The output/Вывод Before: SCALAR(0x10f8310) < Друзья, в том году на каком то из YAPC, рассказывали об интересных приемах (типо несовсем документированные фичи) при работе с данными в Perl, никто не поделисться ссылкой? From vovkasm на gmail.com Wed Jan 6 09:39:03 2016 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Wed, 6 Jan 2016 20:39:03 +0300 Subject: [Moscow.pm] =?utf-8?b?RndkOiDQn9C+0YfQtdC80YMg0LzQtdC90Y/QtdGC?= =?utf-8?b?0YHRjyDRgdGC0LDRgNC+0LUg0LfQvdCw0YfQtdC90LjQtSwg0YXQvtGC?= =?utf-8?b?0Y8g0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LvQvtC60LDQu9C40LfQuNGA?= =?utf-8?b?0L7QstCw0L3QsD8=?= In-Reply-To: <726421452081024@web5h.yandex.ru> References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> Message-ID: А какая версия Perl у вас? А то вот я запускаю ваш пример в виде такого скрипта: === test.pl #!perl print "Case 1. DB special var\n"; { $DB::single = 7; my $x = \$DB::single; print "Before: ". \$DB::single ." <<$x $$x\n"; local $DB::single = 0; print "After: ". \$DB::single ." <<$x $$x\n"; } print "Case 2. Normal scalar\n"; { $DB::xxx = 7; my $x = \$DB::xxx; print "Before: ". \$DB::xxx ." <<$x $$x\n"; local $DB::xxx = 0; print "After: ". \$DB::xxx ." <<$x $$x\n"; } === На 5.22.1 получаю: Case 1. DB special var Before: SCALAR(0x7f914a029b60) < wrote: > День добрый. > Локализация $DB::single работает без проблем, но если брать ссылку на неё, то возникают проблемы: > The localization of $DB::single works fine, but the reference to it does not work: > { > $DB::single = 7; my $x = \$DB::single; > print "Before: ". \$DB::single ." <<$x $$x\n"; > local $DB::single = 0; > print "After: ". \$DB::single ." <<$x $$x\n"; > } > > The output/Вывод > Before: SCALAR(0x10f8310) < After: SCALAR(0x110cbc8) < > В то время как: > Where as works fine: > { > $DB::z = 7; my $x = \$DB::z; > print "Before: ". \$DB::z ." <<$x $$x\n"; > local $DB::z = 0; > print "After: ". \$DB::z ." <<$x $$x\n"; > } > The output:/Вывод > Before: SCALAR(0x134d398) < After: SCALAR(0x1239bc8) < > Тут видно, что в первом примере память выделена: Новый адрес $DB::single является: SCALAR(0x110cbc8) > Но когда присваиваем новое значение в $DB::single, то значение по старому адресу ((SCALAR(0x10f8310)) меняется тоже > Во втором примере мы видим, что выделение памяти происходит по той же схеме, но значение 7 сохранено как и ожидалось. > We see that in *first* example the new variable is created: The new address of $DB::single is SCALAR(0x110cbc8) > but when assigning to $DB::single the value by old reference (SCALAR(0x10f8310) changed too. > In *second* example we see that addressing works in same manner, but value 7 is preserved as expected. > > Почему значение $DB::single по старой ссылке меняется? > Why the value of $DB::single by old reference is not preserved? > > PS. Можно отвечать на русском. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Vladimir Timofeev From asan999 на gmail.com Wed Jan 6 10:40:28 2016 From: asan999 на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCQ0YHRj9C60LjQvQ==?=) Date: Wed, 6 Jan 2016 21:40:28 +0300 Subject: [Moscow.pm] perl hints In-Reply-To: References: Message-ID: <568D5F9C.8060902@gmail.com> http://search.cpan.org/dist/perlsecret/lib/perlsecret.pod оно? On 01/06/2016 08:19 PM, Nikolay Poletaev wrote: > Друзья, в том году на каком то из YAPC, рассказывали об интересных > приемах (типо несовсем документированные фичи) при работе с данными в > Perl, никто не поделисться ссылкой? From unknown.vagrant на gmail.com Wed Jan 6 10:44:05 2016 From: unknown.vagrant на gmail.com (Nikolay Poletaev) Date: Wed, 6 Jan 2016 21:44:05 +0300 Subject: [Moscow.pm] perl hints In-Reply-To: <568D5F9C.8060902@gmail.com> References: <568D5F9C.8060902@gmail.com> Message-ID: Андрей, спасибо, оно! 6 января 2016 г., 21:40 пользователь Андрей Асякин написал: > http://search.cpan.org/dist/perlsecret/lib/perlsecret.pod > оно? > > > On 01/06/2016 08:19 PM, Nikolay Poletaev wrote: >> >> Друзья, в том году на каком то из YAPC, рассказывали об интересных >> приемах (типо несовсем документированные фичи) при работе с данными в >> Perl, никто не поделисться ссылкой? > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From kes-kes на yandex.ru Wed Jan 6 11:38:54 2016 From: kes-kes на yandex.ru (KES) Date: Wed, 06 Jan 2016 21:38:54 +0200 Subject: [Moscow.pm] =?koi8-r?b?RndkOiDwz97FzdUgzcXO0cXU09Eg09TB0s/FINrO?= =?koi8-r?b?wd7FzsnFLCDIz9TRINDF0sXNxc7OwdEgzM/LwczJ2snSz9fBzsE/?= In-Reply-To: References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> Message-ID: <497231452109134@web23m.yandex.ru> Я извиняюсь. Упустил важный момент. Вот полный код: $ cat Devel/DB.pm package DB; sub DB::DB { } sub sub { { $DB::single = 7; my $x = \$DB::single; print "Before: ". \$DB::single ." <<$x $$x\n"; local $DB::single = 0; print "After: ". \$DB::single ." <<$x $$x\n"; } return &$DB::sub; } 1; $ perl -d:DB -e 'sub t{} t()' $ perl -v This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux PS. Думаю в ближайшее мне придется очень глубоко копнуть в исходники перл, т.к. в дебаг режиме шероховатость на шероховатости :`-( From kes-kes на yandex.ru Wed Jan 6 11:45:21 2016 From: kes-kes на yandex.ru (KES) Date: Wed, 06 Jan 2016 21:45:21 +0200 Subject: [Moscow.pm] =?koi8-r?b?RndkOiDwz97FzdUgzcXO0cXU09Eg09TB0s/FINrO?= =?koi8-r?b?wd7FzsnFLCDIz9TRINDF0sXNxc7OwdEgzM/LwczJ2snSz9fBzsE/?= In-Reply-To: References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> Message-ID: <506281452109521@web23m.yandex.ru> >И уж совсем не понятно, что же вы пытались сделать, что в итоге такой кусок кода получился ))) Хотел положить ссылки на $DB::single в массив, чтобы можно было управлять значениями, в которые будет восстановлено $DB::single при выходе из блока. Это удобно, когда мы хотим выйти из текущей функции на n уровней вверх, при дебаге. From vovkasm на gmail.com Wed Jan 6 12:45:53 2016 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Wed, 6 Jan 2016 23:45:53 +0300 Subject: [Moscow.pm] =?utf-8?b?RndkOiDQn9C+0YfQtdC80YMg0LzQtdC90Y/QtdGC?= =?utf-8?b?0YHRjyDRgdGC0LDRgNC+0LUg0LfQvdCw0YfQtdC90LjQtSwg0YXQvtGC?= =?utf-8?b?0Y8g0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LvQvtC60LDQu9C40LfQuNGA?= =?utf-8?b?0L7QstCw0L3QsD8=?= In-Reply-To: <497231452109134@web23m.yandex.ru> References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> <497231452109134@web23m.yandex.ru> Message-ID: Ну вот это уже интереснее ) Так вот: 1. Без дебаггера, $DB::single обычный скаляр, с ним всё происходит как надо (в вашем случае это был $DB::x, об этом чуть ниже). $ perl -MDevel::Peek -e'Dump($DB::single)' SV = NULL(0x0) at 0x7f882b82dc60 REFCNT = 1 FLAGS = () 2. С подключенным дебаггером. $ perl -MDevel::Peek -d -e'Dump($DB::single)' DB<1> c SV = PVMG(0x7fc78a025460) at 0x7fc78a004a30 REFCNT = 1 FLAGS = (GMG,SMG,IOK,pIOK) IV = 0 NV = 0 PV = 0 MAGIC = 0x7fc789c052e0 MG_VIRTUAL = &PL_vtbl_debugvar MG_TYPE = PERL_MAGIC_debugvar(*) Во втором случае никакой local работать не будет, вернее будет... в штатном режиме (это можно увидеть, если вставить Dump в ваш код), но толку нет, потому что к значениям из слотов SV не будет доступа, вместо этого будет вызываться метод из VTBL магический, который... возвращает актуальное значение. (это примерное объяснение, я редко лазил в эту область и внимательно сейчас читать исходники нет ни времени ни желания :-) Всю магию, которую вешает дебаггер можно посмотреть в perl.c где-то в р-не строки 4000, функция Perl_init_debugger. Соотвественно, те символы, на которых магия могут работать не нормально: DB::single, DB::trace, DB::signal. Мне кажется, что для хранения текущего состояния в своём дебаггере, можно использовать нормальные свои переменные в пакете DB, главное не пересечься с уже используемыми перлом. 2016-01-06 22:38 GMT+03:00 KES : > Я извиняюсь. Упустил важный момент. Вот полный код: > $ cat Devel/DB.pm > package DB; > > > sub DB::DB { > } > > sub sub { > { > $DB::single = 7; my $x = \$DB::single; > print "Before: ". \$DB::single ." <<$x $$x\n"; > local $DB::single = 0; > print "After: ". \$DB::single ." <<$x $$x\n"; > } > > return &$DB::sub; > } > > 1; > > $ perl -d:DB -e 'sub t{} t()' > > $ perl -v > This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux > > PS. Думаю в ближайшее мне придется очень глубоко копнуть в исходники перл, т.к. в дебаг режиме шероховатость на шероховатости :`-( > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Vladimir Timofeev From kes-kes на yandex.ru Wed Jan 6 19:19:46 2016 From: kes-kes на yandex.ru (Eugen Konkov) Date: Thu, 7 Jan 2016 01:19:46 -0200 Subject: [Moscow.pm] =?utf-8?b?RndkOiDQn9C+0YfQtdC80YMg0LzQtdC90Y/QtdGC?= =?utf-8?b?0YHRjyDRgdGC0LDRgNC+0LUg0LfQvdCw0YfQtdC90LjQtSwg0YXQvtGC0Y8g?= =?utf-8?b?0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LvQvtC60LDQu9C40LfQuNGA0L7QstCw?= =?utf-8?b?0L3QsD8=?= In-Reply-To: References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> <497231452109134@web23m.yandex.ru> Message-ID: <893118967.20160107011946@yandex.ru> Спасибо! Очень много интересной информации вы мне дали. Пойду изучать... Не могли бы вы мне подсказать файл, в котором перл генерирует опкод для goto? >Во втором случае никакой local работать не будет, вернее будет... local $DB::single = $DB::single +0; работал и работает отлично и в дебаг режиме тоже (см. ниже) >Мне кажется, что для хранения текущего состояния в своём дебаггере Как раз не текущее состояние было нужно, а n фреймов назад... У меня в дебагере что-то наподобие: sub sub { local $DB::single = $DB::single +0; # без 0 не работает :? return &$DB::sub; } Где-то внутри вызываемой функции с именем "$DB::sub" я делаю $DB::single = 0 и автоматом останавливаюсь на первом операторе вне этой функции. Т.е. для кода: sub t{ $DB::single = 0; } t(); $x++; <<< останавливаюсь тут Останавливаюсь потому, что после того как отработает 'return &$DB::sub' перл восстановит старое локализированное значение $DB::single в TRUE и вызовется DB::DB на первом опкоде после возврата, те. '$x++' Но если бы мы хотели выйти на 2 фрейма вверх? То нам нужно, чтобы старое локализированное значение $DB::single восстановилось в FALSE Как поменять старое локализированное значение? - Взять ссылку на него... Получается примерно такое: sub sub { $#DB::stack = $DB::deep; $DB::stack[-1] = { single => \$DB::single }; local $DB::single = $DB::single +0; local $DB::deep = $DB::deep +1; return &$DB::sub; } sub t1 { $DB::stack[-1]{ single } = 0; $DB::single = 0; } #DEEP 2 sub t2 { t1(); $y++; } # DEEP 1 t2(); #DEEP 0 $x++; Если бы мы шли в функцию t1 пошагово, то было бы локализировано 2 значения $DB::single, это единицы. [ { single => \1 } { single => \1 } ] после выполнения t1 стэк выгледел был бы так: [ { single => \1 } { single => \0 } ] Соответственно после выхода из t1 перл бы востанавливал в $DB::single не в единицу, а в 0, а это бы позволило нам выйти из t2 тоже и остановиться на $x++ И теперь мне понятно (благодаря вашему объяснению), что из-за магии $DB::single, когда мы делаем ${ $DB::stack[-1]{single} } = 0, то меняются все значения в стеке, а не только указанное, т.е. получаем: [ { single => \0 } { single => \0 } ] соответственно вываливаемся полностью из программы... Я предпологаю, что должна быть возможность через XS обойти магию и присвоить 0 в правильную ссылку. Не могли бы вы порекомендовать какие нибудь хорошие мануалы по XS? PS. Сейчас пока обхожусь костылём. Завожу переменную, в которой хранится значение на сколько уровней нужно поднятся и в sub DB::DB делаю sub DB { if( $DB::level-- != 1 ) { $DB::single = 0; return; } } Соответсвенно в t1: sub t1 { $DB::level = 2; $DB::single = 0; } Недостаток этого метода, наверное, небольшой проигрыш в скорости работы, по сравнению с "правильным" методом, но выбирать не приходиться ((( PSS. Тут для наглядности и простоты примеров я изменял значения из DB:: прям в коде скрипта, но в боевом примере этого добиваюсь с помощью комманд дебагера s n r Вы писали 6 января 2016 г., 18:45:53: VT> Ну вот это уже интереснее ) VT> Так вот: VT> 1. Без дебаггера, $DB::single обычный скаляр, с ним всё происходит как VT> надо (в вашем случае это был $DB::x, об этом чуть ниже). VT> $ perl -MDevel::Peek -e'Dump($DB::single)' VT> SV = NULL(0x0) at 0x7f882b82dc60 VT> REFCNT = 1 VT> FLAGS = () VT> 2. С подключенным дебаггером. VT> $ perl -MDevel::Peek -d -e'Dump($DB::single)' VT> DB<1> c VT> SV = PVMG(0x7fc78a025460) at 0x7fc78a004a30 VT> REFCNT = 1 VT> FLAGS = (GMG,SMG,IOK,pIOK) VT> IV = 0 VT> NV = 0 VT> PV = 0 VT> MAGIC = 0x7fc789c052e0 VT> MG_VIRTUAL = &PL_vtbl_debugvar VT> MG_TYPE = PERL_MAGIC_debugvar(*) VT> Во втором случае никакой local работать не будет, вернее будет... в VT> штатном режиме (это можно увидеть, если вставить Dump в ваш код), но VT> толку нет, потому что к значениям из слотов SV не будет доступа, VT> вместо этого будет вызываться метод из VTBL магический, который... VT> возвращает актуальное значение. (это примерное объяснение, я редко VT> лазил в эту область и внимательно сейчас читать исходники нет ни VT> времени ни желания :-) VT> Всю магию, которую вешает дебаггер можно посмотреть в perl.c где-то в VT> р-не строки 4000, функция Perl_init_debugger. Соотвественно, те VT> символы, на которых магия могут работать не нормально: DB::single, VT> DB::trace, DB::signal. VT> Мне кажется, что для хранения текущего состояния в своём дебаггере, VT> можно использовать нормальные свои переменные в пакете DB, главное не VT> пересечься с уже используемыми перлом. VT> 2016-01-06 22:38 GMT+03:00 KES : >> Я извиняюсь. Упустил важный момент. Вот полный код: >> $ cat Devel/DB.pm >> package DB; >> sub DB::DB { >> } >> sub sub { >> { >> $DB::single = 7; my $x = \$DB::single; >> print "Before: ". \$DB::single ." <<$x $$x\n"; >> local $DB::single = 0; >> print "After: ". \$DB::single ." <<$x $$x\n"; >> } >> return &$DB::sub; >> } >> 1; >> $ perl -d:DB -e 'sub t{} t()' >> $ perl -v >> This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux >> PS. Думаю в ближайшее мне придется очень глубоко копнуть в исходники перл, т.к. в дебаг режиме шероховатость на шероховатости :`-( >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org VT> -- VT> Vladimir Timofeev -- С уважением, Eugen mailto:kes-kes на yandex.ru From kes-kes на yandex.ru Wed Jan 6 19:32:33 2016 From: kes-kes на yandex.ru (Eugen Konkov) Date: Thu, 7 Jan 2016 01:32:33 -0200 Subject: [Moscow.pm] =?utf-8?b?0JHQtdC30L7Qv9Cw0YHQvdC+0YHRgtGMIFBlcmw=?= In-Reply-To: References: Message-ID: <1273019640.20160107013233@yandex.ru> Вложение в формате HTML было извлечено… URL: From vovkasm на gmail.com Wed Jan 6 15:56:18 2016 From: vovkasm на gmail.com (Vladimir Timofeev) Date: Thu, 7 Jan 2016 02:56:18 +0300 Subject: [Moscow.pm] =?utf-8?b?RndkOiDQn9C+0YfQtdC80YMg0LzQtdC90Y/QtdGC?= =?utf-8?b?0YHRjyDRgdGC0LDRgNC+0LUg0LfQvdCw0YfQtdC90LjQtSwg0YXQvtGC?= =?utf-8?b?0Y8g0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LvQvtC60LDQu9C40LfQuNGA?= =?utf-8?b?0L7QstCw0L3QsD8=?= In-Reply-To: <893118967.20160107011946@yandex.ru> References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> <497231452109134@web23m.yandex.ru> <893118967.20160107011946@yandex.ru> Message-ID: 2016-01-07 6:19 GMT+03:00 Eugen Konkov : > Спасибо! Очень много интересной информации вы мне дали. Пойду изучать... > Не могли бы вы мне подсказать файл, в котором перл генерирует обком для goto? Ну это просто. Все OP в файлах op*.c, так что ack 'pp_goto' op*.c и получаем... pp_ctl.c:2768 OP(pp_goto) А вот дальше... текст там забавный ))) > >>Во втором случае никакой local работать не будет, вернее будет... > local $DB::single = $DB::single +0; работал и работает отлично и в дебаг режиме тоже (см. ниже) Ух ты, я и не знал )) Интересно почему, но быстрый просмотр показал, что чтобы понять, придётся много времени потратить, которого нет... По идее магия для DB::single get/set очень простая, просто сохраняет значения ещё и в глобальном массивчике PL_DBcontrol (там для каждой переменной single, trace... по слоту). Хендлеры в конце mg.c, функции Perl_magic_setdebugvar и Perl_magic_getdebugvar. > >>Мне кажется, что для хранения текущего состояния в своём дебаггере > Как раз не текущее состояние было нужно, а n фреймов назад... > > > У меня в дебагере что-то наподобие: > sub sub { > local $DB::single = $DB::single +0; # без 0 не работает :? > return &$DB::sub; > } > > Где-то внутри вызываемой функции с именем "$DB::sub" я делаю $DB::single = 0 и автоматом останавливаюсь на первом операторе вне этой функции. Т.е. для кода: > sub t{ $DB::single = 0; } > t(); > $x++; <<< останавливаюсь тут > > Останавливаюсь потому, что после того как отработает 'return &$DB::sub' перл восстановит старое локализированное значение $DB::single в TRUE > и вызовется DB::DB на первом опкоде после возврата, те. '$x++' > > Но если бы мы хотели выйти на 2 фрейма вверх? > То нам нужно, чтобы старое локализированное значение $DB::single восстановилось в FALSE > > Как поменять старое локализированное значение? - Взять ссылку на него... > Получается примерно такое: > sub sub { > $#DB::stack = $DB::deep; > $DB::stack[-1] = { single => \$DB::single }; > > local $DB::single = $DB::single +0; > local $DB::deep = $DB::deep +1; > return &$DB::sub; > } > > sub t1 { $DB::stack[-1]{ single } = 0; $DB::single = 0; } #DEEP 2 > sub t2 { t1(); $y++; } # DEEP 1 > t2(); #DEEP 0 > $x++; > > Если бы мы шли в функцию t1 пошагово, то было бы локализировано 2 значения $DB::single, это единицы. > [ > { single => \1 } > { single => \1 } > ] > > после выполнения t1 стэк выгледел был бы так: > [ > { single => \1 } > { single => \0 } > ] > > Соответственно после выхода из t1 перл бы востанавливал в $DB::single не в единицу, а в 0, а это бы позволило нам выйти из t2 тоже и остановиться на $x++ > > И теперь мне понятно (благодаря вашему объяснению), что из-за магии $DB::single, когда мы делаем ${ $DB::stack[-1]{single} } = 0, то меняются все значения в стеке, а не только указанное, т.е. получаем: > [ > { single => \0 } > { single => \0 } > ] > > соответственно вываливаемся полностью из программы... А не может ли быть того, что просто нет никакого стека там (в месте, где хранится реальное значение и куда дебаггер смотрит) в слоте PL_DBControl? ;-) > > Я предпологаю, что должна быть возможность через XS обойти магию и присвоить 0 в правильную ссылку. Не могли бы вы порекомендовать какие нибудь хорошие мануалы по XS? > Мысль на вскидку (не проверял). В XS API есть SvIV_nomg(sv), типа возвращает iv из sv и не вызывает магию. Пример использования в той же mg.c:Perl_magic_setdebugvar ну и вообще по коду перла этого добра раскиданно в достатке. > > PS. Сейчас пока обхожусь костылём. Завожу переменную, в которой хранится значение на сколько уровней нужно поднятся и в sub DB::DB делаю > sub DB { > if( $DB::level-- != 1 ) { > $DB::single = 0; > return; > } > } > > > Соответсвенно в t1: > sub t1 { $DB::level = 2; $DB::single = 0; } > Недостаток этого метода, наверное, небольшой проигрыш в скорости работы, по сравнению с "правильным" методом, но выбирать не приходиться ((( Мне-то кажется, что именно этот метод и есть правильный, но навязывать ничего не хочу ))) > > PSS. Тут для наглядности и простоты примеров я изменял значения из DB:: прям в коде скрипта, но в боевом примере этого добиваюсь с помощью комманд дебагера s n r > > Вы писали 6 января 2016 г., 18:45:53: > > VT> Ну вот это уже интереснее ) > > VT> Так вот: > VT> 1. Без дебаггера, $DB::single обычный скаляр, с ним всё происходит как > VT> надо (в вашем случае это был $DB::x, об этом чуть ниже). > VT> $ perl -MDevel::Peek -e'Dump($DB::single)' > VT> SV = NULL(0x0) at 0x7f882b82dc60 > VT> REFCNT = 1 > VT> FLAGS = () > > VT> 2. С подключенным дебаггером. > VT> $ perl -MDevel::Peek -d -e'Dump($DB::single)' > VT> DB<1> c > VT> SV = PVMG(0x7fc78a025460) at 0x7fc78a004a30 > VT> REFCNT = 1 > VT> FLAGS = (GMG,SMG,IOK,pIOK) > VT> IV = 0 > VT> NV = 0 > VT> PV = 0 > VT> MAGIC = 0x7fc789c052e0 > VT> MG_VIRTUAL = &PL_vtbl_debugvar > VT> MG_TYPE = PERL_MAGIC_debugvar(*) > > VT> Во втором случае никакой local работать не будет, вернее будет... в > VT> штатном режиме (это можно увидеть, если вставить Dump в ваш код), но > VT> толку нет, потому что к значениям из слотов SV не будет доступа, > VT> вместо этого будет вызываться метод из VTBL магический, который... > VT> возвращает актуальное значение. (это примерное объяснение, я редко > VT> лазил в эту область и внимательно сейчас читать исходники нет ни > VT> времени ни желания :-) > > VT> Всю магию, которую вешает дебаггер можно посмотреть в perl.c где-то в > VT> р-не строки 4000, функция Perl_init_debugger. Соотвественно, те > VT> символы, на которых магия могут работать не нормально: DB::single, > VT> DB::trace, DB::signal. > > VT> Мне кажется, что для хранения текущего состояния в своём дебаггере, > VT> можно использовать нормальные свои переменные в пакете DB, главное не > VT> пересечься с уже используемыми перлом. > > VT> 2016-01-06 22:38 GMT+03:00 KES : >>> Я извиняюсь. Упустил важный момент. Вот полный код: >>> $ cat Devel/DB.pm >>> package DB; > > >>> sub DB::DB { >>> } > >>> sub sub { >>> { >>> $DB::single = 7; my $x = \$DB::single; >>> print "Before: ". \$DB::single ." <<$x $$x\n"; >>> local $DB::single = 0; >>> print "After: ". \$DB::single ." <<$x $$x\n"; >>> } > >>> return &$DB::sub; >>> } > >>> 1; > >>> $ perl -d:DB -e 'sub t{} t()' > >>> $ perl -v >>> This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux > >>> PS. Думаю в ближайшее мне придется очень глубоко копнуть в исходники перл, т.к. в дебаг режиме шероховатость на шероховатости :`-( >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org > > > > VT> -- > VT> Vladimir Timofeev > > > > -- > С уважением, > Eugen mailto:kes-kes на yandex.ru > -- Vladimir Timofeev From an.gorohovski на gmail.com Wed Jan 6 23:08:13 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Thu, 7 Jan 2016 10:08:13 +0300 Subject: [Moscow.pm] perl hints In-Reply-To: References: <568D5F9C.8060902@gmail.com> Message-ID: See please here: http://pragmaticperl.com/issues/06/pragmaticperl-06-%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B-perl-%D0%B8-%D0%BD%D0%B5-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE.html 6 января 2016 г., 21:44 пользователь Nikolay Poletaev < unknown.vagrant на gmail.com> написал: > Андрей, спасибо, оно! > > 6 января 2016 г., 21:40 пользователь Андрей Асякин > написал: > > http://search.cpan.org/dist/perlsecret/lib/perlsecret.pod > > оно? > > > > > > On 01/06/2016 08:19 PM, Nikolay Poletaev wrote: > >> > >> Друзья, в том году на каком то из YAPC, рассказывали об интересных > >> приемах (типо несовсем документированные фичи) при работе с данными в > >> Perl, никто не поделисться ссылкой? > > > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kes-kes на yandex.ru Thu Jan 7 00:43:46 2016 From: kes-kes на yandex.ru (KES) Date: Thu, 07 Jan 2016 10:43:46 +0200 Subject: [Moscow.pm] =?koi8-r?b?RndkOiDwz97FzdUgzcXO0cXU09Eg09TB0s/FINrO?= =?koi8-r?b?wd7FzsnFLCDIz9TRINDF0sXNxc7OwdEgzM/LwczJ2snSz9fBzsE/?= In-Reply-To: References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> <497231452109134@web23m.yandex.ru> <893118967.20160107011946@yandex.ru> Message-ID: <883911452156226@web8h.yandex.ru> >А не может ли быть того, что просто нет никакого стека там our @DB::stack - это моя глобальная переменная. Просто я пытался сделать через неё, как описал, но из-за той магии, хоть ссылки и указывают на разные адреса, мы всё равно работаем с одним значением. Ладно, ещё раз спасибо за инфу. Буду изучать. From andy на shitov.ru Thu Jan 7 15:09:11 2016 From: andy на shitov.ru (Andrew Shitov) Date: Fri, 8 Jan 2016 00:09:11 +0100 Subject: [Moscow.pm] FOSDEM Message-ID: Кто-нить собирается в этом году на Фосдем? Появилось перловое расписание: https://fosdem.org/2016/schedule/track/perl/ (ну и куча всего неперлового в других потоках). -- Andrew Shitov ______________________________________________________________________ andy на shitov.ru | http://shitov.ru From shafiev на gmail.com Thu Jan 7 21:39:31 2016 From: shafiev на gmail.com (Naim Shafiev) Date: Fri, 8 Jan 2016 09:39:31 +0400 Subject: [Moscow.pm] FOSDEM In-Reply-To: References: Message-ID: я надеюсь смогу приехать . как раз документы для визы собираю . On Jan 8, 2016 3:09 AM, "Andrew Shitov" wrote: > Кто-нить собирается в этом году на Фосдем? > > Появилось перловое расписание: > https://fosdem.org/2016/schedule/track/perl/ (ну и куча всего > неперлового в других потоках). > > -- > Andrew Shitov > ______________________________________________________________________ > andy на shitov.ru | http://shitov.ru > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kes-kes на yandex.ru Fri Jan 8 03:11:59 2016 From: kes-kes на yandex.ru (KES) Date: Fri, 08 Jan 2016 13:11:59 +0200 Subject: [Moscow.pm] =?koi8-r?b?RndkOiDwz97FzdUgzcXO0cXU09Eg09TB0s/FINrO?= =?koi8-r?b?wd7FzsnFLCDIz9TRINDF0sXNxc7OwdEgzM/LwczJ2snSz9fBzsE/?= In-Reply-To: References: <718141452080791@web5h.yandex.ru> <726421452081024@web5h.yandex.ru> <497231452109134@web23m.yandex.ru> <893118967.20160107011946@yandex.ru> Message-ID: <633501452251519@web7o.yandex.ru> >Мне-то кажется, что именно этот метод и есть правильный, но навязывать ничего не хочу ))) Получилось сделать локализацию вручную с помощью модуля Hook::Scope. Но дополнительно выкинул из него код 'use optimizer 'sub-detect' => \&optimizer;' потому, что модуль уж совсем старый и некорректно работает с новыми версиями perl. use Hook::Scope; sub sub_returns { # если стек есть... if( defined $DB::deep ) { # когда функции ещё не вызывались, то $DB::deep == undef $#DB::stack = $DB::deep; $DB::single = $DB::stack[-1]{ single }; } } sub sub { if( $DB::sub eq 'DB::sub_returns' ) { # предотвращаем segfault return &$DB::sub; } # register hook to restore value when out of scope Hook::Scope::POST( \&sub_returns ); # relocate space and save value $#DB::stack = $DB::deep; $DB::stack[-1] = { single => $DB::single }; local $DB::deep = $DB::deep +1; return &$DB::sub; } 07.01.2016, 01:56, "Vladimir Timofeev" : > 2016-01-07 6:19 GMT+03:00 Eugen Konkov : >>  Спасибо! Очень много интересной информации вы мне дали. Пойду изучать... >>  Не могли бы вы мне подсказать файл, в котором перл генерирует обком для goto? > > Ну это просто. Все OP в файлах op*.c, так что ack 'pp_goto' op*.c и получаем... > pp_ctl.c:2768 OP(pp_goto) > > А вот дальше... текст там забавный ))) > >>> Во втором случае никакой local работать не будет, вернее будет... >>  local $DB::single = $DB::single +0; работал и работает отлично и в дебаг режиме тоже (см. ниже) > > Ух ты, я и не знал )) > Интересно почему, но быстрый просмотр показал, что чтобы понять, > придётся много времени потратить, которого нет... > По идее магия для DB::single get/set очень простая, просто сохраняет > значения ещё и в глобальном массивчике PL_DBcontrol (там для каждой > переменной single, trace... по слоту). Хендлеры в конце mg.c, функции > Perl_magic_setdebugvar и Perl_magic_getdebugvar. > >>> Мне кажется, что для хранения текущего состояния в своём дебаггере >>  Как раз не текущее состояние было нужно, а n фреймов назад... >> >>  У меня в дебагере что-то наподобие: >>  sub sub { >>       local $DB::single = $DB::single +0; # без 0 не работает :? >>       return &$DB::sub; >>   } >> >>  Где-то внутри вызываемой функции с именем "$DB::sub" я делаю $DB::single = 0 и автоматом останавливаюсь на первом операторе вне этой функции. Т.е. для кода: >>  sub t{ $DB::single = 0; } >>  t(); >>  $x++; <<< останавливаюсь тут >> >>  Останавливаюсь потому, что после того как отработает 'return &$DB::sub' перл восстановит старое локализированное значение $DB::single в TRUE >>  и вызовется DB::DB на первом опкоде после возврата, те. '$x++' >> >>  Но если бы мы хотели выйти на 2 фрейма вверх? >>  То нам нужно, чтобы старое локализированное значение $DB::single восстановилось в FALSE >> >>  Как поменять старое локализированное значение? - Взять ссылку на него... >>  Получается примерно такое: >>  sub sub { >>       $#DB::stack = $DB::deep; >>       $DB::stack[-1] = { single => \$DB::single }; >> >>       local $DB::single = $DB::single +0; >>       local $DB::deep = $DB::deep +1; >>       return &$DB::sub; >>  } >> >>  sub t1 { $DB::stack[-1]{ single } = 0; $DB::single = 0; } #DEEP 2 >>  sub t2 { t1(); $y++; } # DEEP 1 >>  t2(); #DEEP 0 >>  $x++; >> >>  Если бы мы шли в функцию t1 пошагово, то было бы локализировано 2 значения $DB::single, это единицы. >>  [ >>     { single => \1 } >>     { single => \1 } >>  ] >> >>  после выполнения t1 стэк выгледел был бы так: >>  [ >>     { single => \1 } >>     { single => \0 } >>  ] >> >>  Соответственно после выхода из t1 перл бы востанавливал в $DB::single не в единицу, а в 0, а это бы позволило нам выйти из t2 тоже и остановиться на $x++ >> >>  И теперь мне понятно (благодаря вашему объяснению), что из-за магии $DB::single, когда мы делаем ${ $DB::stack[-1]{single} } = 0, то меняются все значения в стеке, а не только указанное, т.е. получаем: >>  [ >>     { single => \0 } >>     { single => \0 } >>  ] >> >>  соответственно вываливаемся полностью из программы... > > А не может ли быть того, что просто нет никакого стека там (в месте, > где хранится реальное значение и куда дебаггер смотрит) в слоте > PL_DBControl? ;-) > >>  Я предпологаю, что должна быть возможность через XS обойти магию и присвоить 0 в правильную ссылку. Не могли бы вы порекомендовать какие нибудь хорошие мануалы по XS? > > Мысль на вскидку (не проверял). В XS API есть SvIV_nomg(sv), типа > возвращает iv из sv и не вызывает магию. Пример использования в той же > mg.c:Perl_magic_setdebugvar ну и вообще по коду перла этого добра > раскиданно в достатке. > >>  PS. Сейчас пока обхожусь костылём. Завожу переменную, в которой хранится значение на сколько уровней нужно поднятся и в sub DB::DB делаю >>  sub DB { >>     if( $DB::level-- != 1 ) { >>         $DB::single = 0; >>         return; >>     } >>  } >> >>  Соответсвенно в t1: >>  sub t1 { $DB::level = 2; $DB::single = 0; } >>  Недостаток этого метода, наверное, небольшой проигрыш в скорости работы, по сравнению с "правильным" методом, но выбирать не приходиться ((( > > Мне-то кажется, что именно этот метод и есть правильный, но навязывать > ничего не хочу ))) > >>  PSS. Тут для наглядности и простоты примеров я изменял значения из DB:: прям в коде скрипта, но в боевом примере этого добиваюсь с помощью комманд дебагера s n r >> >>  Вы писали 6 января 2016 г., 18:45:53: >> >>  VT> Ну вот это уже интереснее ) >> >>  VT> Так вот: >>  VT> 1. Без дебаггера, $DB::single обычный скаляр, с ним всё происходит как >>  VT> надо (в вашем случае это был $DB::x, об этом чуть ниже). >>  VT> $ perl -MDevel::Peek -e'Dump($DB::single)' >>  VT> SV = NULL(0x0) at 0x7f882b82dc60 >>  VT> REFCNT = 1 >>  VT> FLAGS = () >> >>  VT> 2. С подключенным дебаггером. >>  VT> $ perl -MDevel::Peek -d -e'Dump($DB::single)' >>  VT> DB<1> c >>  VT> SV = PVMG(0x7fc78a025460) at 0x7fc78a004a30 >>  VT> REFCNT = 1 >>  VT> FLAGS = (GMG,SMG,IOK,pIOK) >>  VT> IV = 0 >>  VT> NV = 0 >>  VT> PV = 0 >>  VT> MAGIC = 0x7fc789c052e0 >>  VT> MG_VIRTUAL = &PL_vtbl_debugvar >>  VT> MG_TYPE = PERL_MAGIC_debugvar(*) >> >>  VT> Во втором случае никакой local работать не будет, вернее будет... в >>  VT> штатном режиме (это можно увидеть, если вставить Dump в ваш код), но >>  VT> толку нет, потому что к значениям из слотов SV не будет доступа, >>  VT> вместо этого будет вызываться метод из VTBL магический, который... >>  VT> возвращает актуальное значение. (это примерное объяснение, я редко >>  VT> лазил в эту область и внимательно сейчас читать исходники нет ни >>  VT> времени ни желания :-) >> >>  VT> Всю магию, которую вешает дебаггер можно посмотреть в perl.c где-то в >>  VT> р-не строки 4000, функция Perl_init_debugger. Соотвественно, те >>  VT> символы, на которых магия могут работать не нормально: DB::single, >>  VT> DB::trace, DB::signal. >> >>  VT> Мне кажется, что для хранения текущего состояния в своём дебаггере, >>  VT> можно использовать нормальные свои переменные в пакете DB, главное не >>  VT> пересечься с уже используемыми перлом. >> >>  VT> 2016-01-06 22:38 GMT+03:00 KES : >>>>  Я извиняюсь. Упустил важный момент. Вот полный код: >>>>  $ cat Devel/DB.pm >>>>  package DB; >> >>>>  sub DB::DB { >>>>  } >> >>>>  sub sub { >>>>      { >>>>          $DB::single = 7; my $x = \$DB::single; >>>>          print "Before: ". \$DB::single ." <<$x $$x\n"; >>>>          local $DB::single = 0; >>>>          print "After: ". \$DB::single ." <<$x $$x\n"; >>>>      } >> >>>>      return &$DB::sub; >>>>  } >> >>>>  1; >> >>>>  $ perl -d:DB -e 'sub t{} t()' >> >>>>  $ perl -v >>>>  This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux >> >>>>  PS. Думаю в ближайшее мне придется очень глубоко копнуть в исходники перл, т.к. в дебаг режиме шероховатость на шероховатости :`-( >>>>  -- >>>>  Moscow.pm mailing list >>>>  moscow-pm на pm.org | http://moscow.pm.org >> >>  VT> -- >>  VT> Vladimir Timofeev >> >>  -- >>  С уважением, >>   Eugen mailto:kes-kes на yandex.ru > > -- > Vladimir Timofeev From an.gorohovski на gmail.com Fri Jan 8 03:55:58 2016 From: an.gorohovski на gmail.com (Alessandro N. Gorohovski) Date: Fri, 8 Jan 2016 14:55:58 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= Message-ID: <20160108115558.GA6705@gmail.com> Уважаемое сообщество, Доброго времени суток! Подскажите, кто знает, существует ли способ проверить существования ключа в хеше без учёта регистра букв. Т.е.использование exists( $hsh{ $key } ) с каким либо модификатором для $key. Ключи --- не содержат кириллицы. Может кто сталкивался. Конечно, можно предложить хранить в хеше ключи в каком либо одном регистре ( lc || uc ), но это будет громоздко, поскольку ключи могут быть достаточно длинными строками и должны использоваться далее без изменний регистра. Thanks in advance, Aleks. From denis.fedoseev на gmail.com Fri Jan 8 04:24:51 2016 From: denis.fedoseev на gmail.com (Denis Fedoseev) Date: Fri, 8 Jan 2016 15:24:51 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: <20160108115558.GA6705@gmail.com> References: <20160108115558.GA6705@gmail.com> Message-ID: Если в лоб: $key =~ /pattern/i; Но дорогое удовольствие. Ну или можно создать хэш в котором хранить нормализованный ключ и в нем ссылку на оригинал. On Jan 8, 2016 12:56 PM, "Alessandro N. Gorohovski" wrote: > Уважаемое сообщество, > Доброго времени суток! > > Подскажите, кто знает, > существует ли способ проверить существования ключа в хеше > без учёта регистра букв. > > Т.е.использование > exists( $hsh{ $key } ) > с каким либо модификатором для $key. > > Ключи --- не содержат кириллицы. > > Может кто сталкивался. > > Конечно, можно предложить хранить в хеше ключи в каком либо одном регистре > ( lc || uc ), > но это будет громоздко, поскольку ключи могут быть достаточно длинными > строками и должны использоваться далее без изменний регистра. > > Thanks in advance, > Aleks. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Fri Jan 8 04:59:48 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Fri, 8 Jan 2016 15:59:48 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: References: <20160108115558.GA6705@gmail.com> Message-ID: any { $_ ~= /\Q$key\E/i } keys %$hsh; Но лучше и вправду допхэш, если память есть. 08 янв 2016 г. 15:25 пользователь "Denis Fedoseev" написал: > Если в лоб: > > $key =~ /pattern/i; > > Но дорогое удовольствие. > > Ну или можно создать хэш в котором хранить нормализованный ключ и в нем > ссылку на оригинал. > On Jan 8, 2016 12:56 PM, "Alessandro N. Gorohovski" < > an.gorohovski на gmail.com> wrote: > >> Уважаемое сообщество, >> Доброго времени суток! >> >> Подскажите, кто знает, >> существует ли способ проверить существования ключа в хеше >> без учёта регистра букв. >> >> Т.е.использование >> exists( $hsh{ $key } ) >> с каким либо модификатором для $key. >> >> Ключи --- не содержат кириллицы. >> >> Может кто сталкивался. >> >> Конечно, можно предложить хранить в хеше ключи в каком либо одном >> регистре ( lc || uc ), >> но это будет громоздко, поскольку ключи могут быть достаточно длинными >> строками и должны использоваться далее без изменний регистра. >> >> Thanks in advance, >> Aleks. >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Fri Jan 8 05:00:43 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Fri, 8 Jan 2016 16:00:43 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: References: <20160108115558.GA6705@gmail.com> Message-ID: Вернее, чуть наоборот и с квантификаторами начала и конца строки 08 янв 2016 г. 15:59 пользователь "Akzhan Abdulin" написал: > any { $_ ~= /\Q$key\E/i } keys %$hsh; > > Но лучше и вправду допхэш, если память есть. > 08 янв 2016 г. 15:25 пользователь "Denis Fedoseev" < > denis.fedoseev на gmail.com> написал: > >> Если в лоб: >> >> $key =~ /pattern/i; >> >> Но дорогое удовольствие. >> >> Ну или можно создать хэш в котором хранить нормализованный ключ и в нем >> ссылку на оригинал. >> On Jan 8, 2016 12:56 PM, "Alessandro N. Gorohovski" < >> an.gorohovski на gmail.com> wrote: >> >>> Уважаемое сообщество, >>> Доброго времени суток! >>> >>> Подскажите, кто знает, >>> существует ли способ проверить существования ключа в хеше >>> без учёта регистра букв. >>> >>> Т.е.использование >>> exists( $hsh{ $key } ) >>> с каким либо модификатором для $key. >>> >>> Ключи --- не содержат кириллицы. >>> >>> Может кто сталкивался. >>> >>> Конечно, можно предложить хранить в хеше ключи в каком либо одном >>> регистре ( lc || uc ), >>> но это будет громоздко, поскольку ключи могут быть достаточно длинными >>> строками и должны использоваться далее без изменний регистра. >>> >>> Thanks in advance, >>> Aleks. >>> >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Fri Jan 8 05:20:44 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Fri, 8 Jan 2016 16:20:44 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: References: <20160108115558.GA6705@gmail.com> Message-ID: Спасибо. Похоже, что нет такого варианта, как, например, в mysql key LIKE 'patern' 8 января 2016 г., 16:00 пользователь Akzhan Abdulin < akzhan.abdulin на gmail.com> написал: > Вернее, чуть наоборот и с квантификаторами начала и конца строки > 08 янв 2016 г. 15:59 пользователь "Akzhan Abdulin" < > akzhan.abdulin на gmail.com> написал: > > any { $_ ~= /\Q$key\E/i } keys %$hsh; >> >> Но лучше и вправду допхэш, если память есть. >> 08 янв 2016 г. 15:25 пользователь "Denis Fedoseev" < >> denis.fedoseev на gmail.com> написал: >> >>> Если в лоб: >>> >>> $key =~ /pattern/i; >>> >>> Но дорогое удовольствие. >>> >>> Ну или можно создать хэш в котором хранить нормализованный ключ и в нем >>> ссылку на оригинал. >>> On Jan 8, 2016 12:56 PM, "Alessandro N. Gorohovski" < >>> an.gorohovski на gmail.com> wrote: >>> >>>> Уважаемое сообщество, >>>> Доброго времени суток! >>>> >>>> Подскажите, кто знает, >>>> существует ли способ проверить существования ключа в хеше >>>> без учёта регистра букв. >>>> >>>> Т.е.использование >>>> exists( $hsh{ $key } ) >>>> с каким либо модификатором для $key. >>>> >>>> Ключи --- не содержат кириллицы. >>>> >>>> Может кто сталкивался. >>>> >>>> Конечно, можно предложить хранить в хеше ключи в каком либо одном >>>> регистре ( lc || uc ), >>>> но это будет громоздко, поскольку ключи могут быть достаточно длинными >>>> строками и должны использоваться далее без изменний регистра. >>>> >>>> Thanks in advance, >>>> Aleks. >>>> >>>> >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | http://moscow.pm.org >>>> >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >>> > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From zahatski на gmail.com Fri Jan 8 05:34:45 2016 From: zahatski на gmail.com (Aliaksandr Zahatski) Date: Fri, 8 Jan 2016 16:34:45 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: References: <20160108115558.GA6705@gmail.com> Message-ID: Приветствую ! Можно вот эти модули посмотреть: https://metacpan.org/pod/Tie::CPHash http://search.cpan.org/dist/Hash-Case/ http://search.cpan.org/dist/Hash-Case/lib/Hash/Case/Preserve.pod Best regards, Alexandr 8 января 2016 г., 16:20 пользователь Alessandro Gorohovski написал: > Спасибо. > > Похоже, что нет такого варианта, как, например, в mysql > key LIKE 'patern' > > > 8 января 2016 г., 16:00 пользователь Akzhan Abdulin > написал: > >> Вернее, чуть наоборот и с квантификаторами начала и конца строки >> >> 08 янв 2016 г. 15:59 пользователь "Akzhan Abdulin" >> написал: >> >>> any { $_ ~= /\Q$key\E/i } keys %$hsh; >>> >>> Но лучше и вправду допхэш, если память есть. >>> >>> 08 янв 2016 г. 15:25 пользователь "Denis Fedoseev" >>> написал: >>>> >>>> Если в лоб: >>>> >>>> $key =~ /pattern/i; >>>> >>>> Но дорогое удовольствие. >>>> >>>> Ну или можно создать хэш в котором хранить нормализованный ключ и в нем >>>> ссылку на оригинал. >>>> >>>> On Jan 8, 2016 12:56 PM, "Alessandro N. Gorohovski" >>>> wrote: >>>>> >>>>> Уважаемое сообщество, >>>>> Доброго времени суток! >>>>> >>>>> Подскажите, кто знает, >>>>> существует ли способ проверить существования ключа в хеше >>>>> без учёта регистра букв. >>>>> >>>>> Т.е.использование >>>>> exists( $hsh{ $key } ) >>>>> с каким либо модификатором для $key. >>>>> >>>>> Ключи --- не содержат кириллицы. >>>>> >>>>> Может кто сталкивался. >>>>> >>>>> Конечно, можно предложить хранить в хеше ключи в каком либо одном >>>>> регистре ( lc || uc ), >>>>> но это будет громоздко, поскольку ключи могут быть достаточно длинными >>>>> строками и должны использоваться далее без изменний регистра. >>>>> >>>>> Thanks in advance, >>>>> Aleks. >>>>> >>>>> >>>>> -- >>>>> Moscow.pm mailing list >>>>> moscow-pm на pm.org | http://moscow.pm.org >>>> >>>> >>>> -- >>>> Moscow.pm mailing list >>>> moscow-pm на pm.org | http://moscow.pm.org >>>> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From an.gorohovski на gmail.com Fri Jan 8 06:17:28 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Fri, 8 Jan 2016 17:17:28 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: References: <20160108115558.GA6705@gmail.com> Message-ID: Alexandr, Премного благодарен :) Да, Tie::CPHash --- интересный вариант. 8 января 2016 г., 16:34 пользователь Aliaksandr Zahatski написал: > Приветствую ! > > Можно вот эти модули посмотреть: > > https://metacpan.org/pod/Tie::CPHash > > http://search.cpan.org/dist/Hash-Case/ > http://search.cpan.org/dist/Hash-Case/lib/Hash/Case/Preserve.pod > > > Best regards, > Alexandr > > 8 января 2016 г., 16:20 пользователь Alessandro Gorohovski > написал: > > Спасибо. > > > > Похоже, что нет такого варианта, как, например, в mysql > > key LIKE 'patern' > > > > > > 8 января 2016 г., 16:00 пользователь Akzhan Abdulin > > написал: > > > >> Вернее, чуть наоборот и с квантификаторами начала и конца строки > >> > >> 08 янв 2016 г. 15:59 пользователь "Akzhan Abdulin" > >> написал: > >> > >>> any { $_ ~= /\Q$key\E/i } keys %$hsh; > >>> > >>> Но лучше и вправду допхэш, если память есть. > >>> > >>> 08 янв 2016 г. 15:25 пользователь "Denis Fedoseev" > >>> написал: > >>>> > >>>> Если в лоб: > >>>> > >>>> $key =~ /pattern/i; > >>>> > >>>> Но дорогое удовольствие. > >>>> > >>>> Ну или можно создать хэш в котором хранить нормализованный ключ и в > нем > >>>> ссылку на оригинал. > >>>> > >>>> On Jan 8, 2016 12:56 PM, "Alessandro N. Gorohovski" > >>>> wrote: > >>>>> > >>>>> Уважаемое сообщество, > >>>>> Доброго времени суток! > >>>>> > >>>>> Подскажите, кто знает, > >>>>> существует ли способ проверить существования ключа в хеше > >>>>> без учёта регистра букв. > >>>>> > >>>>> Т.е.использование > >>>>> exists( $hsh{ $key } ) > >>>>> с каким либо модификатором для $key. > >>>>> > >>>>> Ключи --- не содержат кириллицы. > >>>>> > >>>>> Может кто сталкивался. > >>>>> > >>>>> Конечно, можно предложить хранить в хеше ключи в каком либо одном > >>>>> регистре ( lc || uc ), > >>>>> но это будет громоздко, поскольку ключи могут быть достаточно > длинными > >>>>> строками и должны использоваться далее без изменний регистра. > >>>>> > >>>>> Thanks in advance, > >>>>> Aleks. > >>>>> > >>>>> > >>>>> -- > >>>>> Moscow.pm mailing list > >>>>> moscow-pm на pm.org | http://moscow.pm.org > >>>> > >>>> > >>>> -- > >>>> Moscow.pm mailing list > >>>> moscow-pm на pm.org | http://moscow.pm.org > >>>> > >> > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > >> > > > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From yu.pats на gmail.com Fri Jan 8 08:20:34 2016 From: yu.pats на gmail.com (Yury Pats) Date: Fri, 8 Jan 2016 19:20:34 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: <20160108115558.GA6705@gmail.com> References: <20160108115558.GA6705@gmail.com> Message-ID: 2016-01-08 14:55 GMT+03:00 Alessandro N. Gorohovski : > Уважаемое сообщество, > Доброго времени суток! > > Подскажите, кто знает, > существует ли способ проверить существования ключа в хеше > без учёта регистра букв. > > Т.е.использование > exists( $hsh{ $key } ) > с каким либо модификатором для $key. > > Ключи --- не содержат кириллицы. > > Может кто сталкивался. > > Конечно, можно предложить хранить в хеше ключи в каком либо одном регистре > ( lc || uc ), > но это будет громоздко, поскольку ключи могут быть достаточно длинными > строками и должны использоваться далее без изменний регистра. > > Может быть в этом и есть камень преткновения? Захешируйте строку и работайте с ней. > Thanks in advance, > Aleks. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- WBR, Yury Pats skype: yuripats mobile: +375 (29) 5870723 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Fri Jan 8 09:16:47 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Fri, 8 Jan 2016 20:16:47 +0300 Subject: [Moscow.pm] =?utf-8?b?0J/QvtC40YHQuiDQutC70Y7Rh9CwINGF0LXRiNCw?= =?utf-8?b?INCx0LXQtyDRg9GH0LXRgtCwINGA0LXQs9C40YHRgtGA0LA=?= In-Reply-To: References: <20160108115558.GA6705@gmail.com> Message-ID: Камень..., может быть. Спасибо за совет. 8 января 2016 г., 19:20 пользователь Yury Pats написал: > > > 2016-01-08 14:55 GMT+03:00 Alessandro N. Gorohovski < > an.gorohovski на gmail.com>: > >> Уважаемое сообщество, >> Доброго времени суток! >> >> Подскажите, кто знает, >> существует ли способ проверить существования ключа в хеше >> без учёта регистра букв. >> >> Т.е.использование >> exists( $hsh{ $key } ) >> с каким либо модификатором для $key. >> >> Ключи --- не содержат кириллицы. >> >> Может кто сталкивался. >> >> Конечно, можно предложить хранить в хеше ключи в каком либо одном >> регистре ( lc || uc ), >> но это будет громоздко, поскольку ключи могут быть достаточно длинными >> строками и должны использоваться далее без изменний регистра. >> >> Может быть в этом и есть камень преткновения? Захешируйте строку и > работайте с ней. > > >> Thanks in advance, >> Aleks. >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > > -- > WBR, Yury Pats > skype: yuripats > mobile: +375 (29) 5870723 > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From grisxa на gmail.com Mon Jan 11 03:05:27 2016 From: grisxa на gmail.com (Grigory Batalov) Date: Mon, 11 Jan 2016 14:05:27 +0300 Subject: [Moscow.pm] =?utf-8?b?0KPRj9C30LLQuNC80L7RgdGC0Ywg0L/RgNC4INC4?= =?utf-8?b?0YHQv9C+0LvRjNC30L7QstCw0L3QuNC4IGRhdGFUYWJsZXMg0LggREJJeDo6?= =?utf-8?q?Class?= In-Reply-To: <56843220.6090305@rabbit.us> References: <20151224234728.7273c791@gbatalov> <56843220.6090305@rabbit.us> Message-ID: <20160111140527.1d90b17d@gbatalov> В Wed, 30 Dec 2015 20:36:00 +0100 Питэр Рэббитсон пишет: > Только осталось добавить почему quote_names => 1 не стоит по > умолчанию: история та же самая как и use strict. Изначально (давно > давно до меня) никому не пришло в голову что наверное надо по > умолчанию все таки умнее себя вести. В результате сейчас гора кода > где стоит например: > > order_by => 'length(column)' > > Если я поменяю дефолт, в результате народ просто перестанет > апгрейдится вобще. Спасибо, буду иметь в виду! From r.yusufkhanov на gmail.com Mon Jan 11 06:24:54 2016 From: r.yusufkhanov на gmail.com (=?utf-8?B?0KDQvtC80LDQvSDQrtGB0YPRhNGF0LDQvdC+0LI=?=) Date: Mon, 11 Jan 2016 17:24:54 +0300 Subject: [Moscow.pm] =?utf-8?b?QW55RXZlbnQ6OkZvcms6OlBvb2wg0LrQvtC70LE=?= =?utf-8?b?0Y3QuiDQv9C+0YHQu9C1INC30LDQstC10YDRiNC10L3QuNGPINCy0YHQtdGF?= =?utf-8?b?INC30LDQtNCw0L3QuNC5?= Message-ID: <90AE4E1C-2A14-435A-B961-AD1C5C30A1AF@gmail.com> Используя AnyEvent::Fork::Pool как сделать колбэк, после того как все задачи завершились? Подозреваю, что надо использовать on_destroy, но, судя по названию он будет вызываться при уничтожении пула. Получается, пул каждый раз надо будет пересоздавать из шаблона? С ув. Роман Юсуфханов r.yusufkhanov на gmail.com моб.: +79310075149 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Mon Jan 11 07:46:48 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Mon, 11 Jan 2016 18:46:48 +0300 Subject: [Moscow.pm] =?utf-8?b?QW55RXZlbnQ6OkZvcms6OlBvb2wg0LrQvtC70LE=?= =?utf-8?b?0Y3QuiDQv9C+0YHQu9C1INC30LDQstC10YDRiNC10L3QuNGPINCy0YE=?= =?utf-8?b?0LXRhSDQt9Cw0LTQsNC90LjQuQ==?= In-Reply-To: <90AE4E1C-2A14-435A-B961-AD1C5C30A1AF@gmail.com> References: <90AE4E1C-2A14-435A-B961-AD1C5C30A1AF@gmail.com> Message-ID: любой процесс по завершении вызывает SIGH_CHILD. не забывай вызывать предыдущий обработчик ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From asan999 на gmail.com Tue Jan 12 01:27:10 2016 From: asan999 на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCQ0YHRj9C60LjQvQ==?=) Date: Tue, 12 Jan 2016 12:27:10 +0300 Subject: [Moscow.pm] =?utf-8?b?QW55RXZlbnQ6OkZvcms6OlBvb2wg0LrQvtC70LE=?= =?utf-8?b?0Y3QuiDQv9C+0YHQu9C1INC30LDQstC10YDRiNC10L3QuNGPINCy0YHQtdGF?= =?utf-8?b?INC30LDQtNCw0L3QuNC5?= In-Reply-To: References: <90AE4E1C-2A14-435A-B961-AD1C5C30A1AF@gmail.com> Message-ID: <5694C6EE.8020303@gmail.com> Только SIGCHLD придет шаблонному процессу, от которого форкаются воркеры, а не основному паренту. Каким то образом самому отслеживать количество завершившихся заданий? там есть всякие on_event, или через колбек получать какой то статус, что все... On 01/11/2016 06:46 PM, Akzhan Abdulin wrote: > любой процесс по завершении вызывает SIGH_CHILD. не забывай вызывать > предыдущий обработчик > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel на kuptsov.info Wed Jan 13 03:00:23 2016 From: pavel на kuptsov.info (=?UTF-8?B?0J/QsNCy0LXQuyDQmtGD0L/RhtC+0LI=?=) Date: Wed, 13 Jan 2016 14:00:23 +0300 Subject: [Moscow.pm] =?utf-8?b?QW55RXZlbnQ6OkZvcms6OlBvb2wg0LrQvtC70LE=?= =?utf-8?b?0Y3QuiDQv9C+0YHQu9C1INC30LDQstC10YDRiNC10L3QuNGPINCy0YE=?= =?utf-8?b?0LXRhSDQt9Cw0LTQsNC90LjQuQ==?= Message-ID: Я в итоге отказался от Fork::Pool и делал свой велосипед :), который я понял лучше. Я разделил задачу на 2 скрипта - 1-й лаунчер, который следит за очередью, форкается в определенном месте для запуска 2-го скрипта парсера (fork затем exec("script.pl args")) и ловит закончивших работу через SIGCHLD. Работает очень стабильно и достаточно быстро. Всегда можно ускорить увеличив размер одновременно работающих парсеров (тут только в железо упираюсь, а так без ограничений). Хотя возможно это не ваш случай. -- Павел 12 января 2016 г., 23:00 пользователь написал: > Сообщения, предназначенные для списка > рассылки Moscow-pm, отправляйте по адресу > moscow-pm на pm.org > > Для изменения параметров подписки или > отписки используйте веб-страницу > http://mail.pm.org/mailman/listinfo/moscow-pm > или отправьте письмо, в теле или теме > которого будет слово 'help', по адресу > moscow-pm-request на pm.org > > Адрес администратора этого списка > рассылки: > moscow-pm-owner на pm.org > > При ответе, пожалуйста, измените тему > письма на более содержательную чем "Re: > Содержание дайджеста списка рассылки > Moscow-pm..." > > > В этом номере: > > 1. Re: AnyEvent::Fork::Pool колбэк после > завершения всех заданий > (Андрей Асякин) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 12 Jan 2016 12:27:10 +0300 > From: Андрей Асякин > To: moscow-pm на pm.org > Subject: Re: [Moscow.pm] AnyEvent::Fork::Pool колбэк после > завершения всех заданий > Message-ID: <5694C6EE.8020303 на gmail.com> > Content-Type: text/plain; charset="utf-8"; Format="flowed" > > Только SIGCHLD придет шаблонному процессу, от которого форкаются > воркеры, а не основному паренту. > > Каким то образом самому отслеживать количество завершившихся заданий? > там есть всякие on_event, или через колбек получать какой то статус, что > все... > > On 01/11/2016 06:46 PM, Akzhan Abdulin wrote: > > любой процесс по завершении вызывает SIGH_CHILD. не забывай вызывать > > предыдущий обработчик > > > > > > ----------- следущая часть ----------- > Вложение в формате HTML было извлечено… > URL: < > http://mail.pm.org/pipermail/moscow-pm/attachments/20160112/2c5136d0/attachment-0001.html > > > > ------------------------------ > > Subject: Нижний колонтитул дайджеста > > _______________________________________________ > Moscow-pm mailing list > Moscow-pm на pm.org > http://mail.pm.org/mailman/listinfo/moscow-pm > > > ------------------------------ > > Конец Дайджест списка рассылки Moscow-pm; том 99, выпуск 11 > > *********************************************************************************************** > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From reyda на yandex.ru Mon Jan 18 04:03:49 2016 From: reyda на yandex.ru (=?koi8-r?B?68nSyczM?=) Date: Mon, 18 Jan 2016 15:03:49 +0300 Subject: [Moscow.pm] =?koi8-r?b?98HLwc7TydE=?= Message-ID: <2357641453118629@web18m.yandex.ru> Добрый день, На долгосрочную поддержку проекта на постоянной основе ищем Perl программиста для работы в удаленном режиме. Поэтому город на самом деле роли не играет. Инфраструктура: Perl 5.16, mysql 5.5.30, Nginx, Xslate, Starman / Plack, Coro, Coro:: AnyEvent, Twiggy, Carp, Memcached Требования: * Хорошее знание Perl, mysql. * Опыт разработки веб-сайтов на Perl от 3 лет. Большим плюсом станет опыт работы с Nginx, git, Редмайном, кроном и большими базами. Минусом станет привычка работать исключительно по ночам, аллергия на чужой код и неготовность работать вне офиса. Такая работа будет удобна тем, у кого постоянно остается достаточно свободного времени помимо основной работы, от 40 часов в месяц. В ближайшей перспективе можно рассматривать как основную работу на зарплате с официальным заключением ВЭД контракта, отпусками и больничными. Оплата — по факту затраченных часов за месяц. В качестве ответа ждем Ваше резюме, пожелание по оплате и сколько часов в месяц могли бы уделять проекту. Спасибо за внимание. -- С уважением, Кирилл Рейда From mmm3 на bk.ru Mon Jan 18 23:29:12 2016 From: mmm3 на bk.ru (=?UTF-8?B?0JzQsNC60YHQuNC8INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw==?=) Date: Tue, 19 Jan 2016 10:29:12 +0300 Subject: [Moscow.pm] =?utf-8?b?U01TINGBINGC0LXQu9C10YTQvtC90LAg0YEg0L8=?= =?utf-8?b?0L7QtNC00LXRgNC20LrQvtC5INC60LjRgNC40LvQu9C40YbRiw==?= Message-ID: <1453188552.262887469@f427.i.mail.ru> Здравствуйте. Подскажите пожалуйста модуль для отправки SMS с телефона с поддержкой кириллицы. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From worldmind на mail.ru Mon Jan 18 23:42:33 2016 From: worldmind на mail.ru (Alexey Shrub) Date: Tue, 19 Jan 2016 10:42:33 +0300 Subject: [Moscow.pm] =?koi8-r?b?U01TINMg1MXMxcbPzsEg0yDQz8TExdLWy8/KIMvJ?= =?koi8-r?b?0snMzMnD2Q==?= In-Reply-To: <1453188552.262887469@f427.i.mail.ru> References: <1453188552.262887469@f427.i.mail.ru> Message-ID: <1453189353.1522.1@smtp.mail.ru> Добрый день, Речь об использовании своего GSM модема или сторонних сервисов? А какой модуль не поддерживает кириллицу? On Вт, янв 19, 2016 в 10:29 , Максим Владимирович wrote: > Здравствуйте. > > Подскажите пожалуйста модуль для > отправки SMS с телефона с поддержкой > кириллицы. > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 00:01:08 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 11:01:08 +0300 Subject: [Moscow.pm] use Thread vs threads Message-ID: Приветствую Уважаемое сообщество, Подскажите есть ли принципиальные отличия в пользовании между use Thread; и use threads; Может я что-то пропустил. Спасибо, Александр. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From dim0xff на gmail.com Tue Jan 19 00:05:55 2016 From: dim0xff на gmail.com (Dmitry L.) Date: Tue, 19 Jan 2016 11:05:55 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: http://perldoc.perl.org/Thread.html 2016-01-19 11:01 GMT+03:00 Alessandro Gorohovski : > Приветствую > Уважаемое сообщество, > > Подскажите есть ли принципиальные отличия в пользовании > между > use Thread; > и > use threads; > > Может я что-то пропустил. > Спасибо, Александр. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- //wbr, Dmitry L. From an.gorohovski на gmail.com Tue Jan 19 00:34:17 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 11:34:17 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: OMG! I got it: > That model was deprecated, and has been removed in version 5.10. Only I have got: $ perl -v This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi It's much newer version 5.10 Ok. Thanks of lot. 19 января 2016 г., 11:05 пользователь Dmitry L. написал: > http://perldoc.perl.org/Thread.html > > 2016-01-19 11:01 GMT+03:00 Alessandro Gorohovski >: > > Приветствую > > Уважаемое сообщество, > > > > Подскажите есть ли принципиальные отличия в пользовании > > между > > use Thread; > > и > > use threads; > > > > Может я что-то пропустил. > > Спасибо, Александр. > > > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > -- > //wbr, Dmitry L. > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 00:40:48 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 11:40:48 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: Значит Программирование на Perl / Ларри Уолл, Том Кристиансен, ... можно "ф топку..."? 19 января 2016 г., 11:34 пользователь Alessandro Gorohovski < an.gorohovski на gmail.com> написал: > OMG! I got it: > > That model was deprecated, and has been removed in version 5.10. > Only I have got: > > $ perl -v > This is perl 5, version 18, subversion 2 (v5.18.2) built for > x86_64-linux-gnu-thread-multi > > It's much newer version 5.10 > > Ok. Thanks of lot. > > > 19 января 2016 г., 11:05 пользователь Dmitry L. > написал: > > http://perldoc.perl.org/Thread.html >> >> 2016-01-19 11:01 GMT+03:00 Alessandro Gorohovski > >: >> > Приветствую >> > Уважаемое сообщество, >> > >> > Подскажите есть ли принципиальные отличия в пользовании >> > между >> > use Thread; >> > и >> > use threads; >> > >> > Может я что-то пропустил. >> > Спасибо, Александр. >> > >> > >> > -- >> > Moscow.pm mailing list >> > moscow-pm на pm.org | http://moscow.pm.org >> > >> >> >> >> -- >> //wbr, Dmitry L. >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From iskhartakh на gmail.com Tue Jan 19 00:42:49 2016 From: iskhartakh на gmail.com (Anatoly Y) Date: Tue, 19 Jan 2016 14:42:49 +0600 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: Конечно, ведь целый гавномодуль threads удалили. А ещё убрали из коре CGI и теперь на перле нельзя писать полноценные веб приложения :( 2016-01-19 14:40 GMT+06:00 Alessandro Gorohovski : > Значит > Программирование на Perl / Ларри Уолл, Том Кристиансен, ... > можно "ф топку..."? > > > 19 января 2016 г., 11:34 пользователь Alessandro Gorohovski < > an.gorohovski на gmail.com> написал: > > OMG! I got it: >> > That model was deprecated, and has been removed in version 5.10. >> Only I have got: >> >> $ perl -v >> This is perl 5, version 18, subversion 2 (v5.18.2) built for >> x86_64-linux-gnu-thread-multi >> >> It's much newer version 5.10 >> >> Ok. Thanks of lot. >> >> >> 19 января 2016 г., 11:05 пользователь Dmitry L. >> написал: >> >> http://perldoc.perl.org/Thread.html >>> >>> 2016-01-19 11:01 GMT+03:00 Alessandro Gorohovski < >>> an.gorohovski на gmail.com>: >>> > Приветствую >>> > Уважаемое сообщество, >>> > >>> > Подскажите есть ли принципиальные отличия в пользовании >>> > между >>> > use Thread; >>> > и >>> > use threads; >>> > >>> > Может я что-то пропустил. >>> > Спасибо, Александр. >>> > >>> > >>> > -- >>> > Moscow.pm mailing list >>> > moscow-pm на pm.org | http://moscow.pm.org >>> > >>> >>> >>> >>> -- >>> //wbr, Dmitry L. >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mmm3 на bk.ru Tue Jan 19 00:50:23 2016 From: mmm3 на bk.ru (=?UTF-8?B?0JzQsNC60YHQuNC8INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw==?=) Date: Tue, 19 Jan 2016 11:50:23 +0300 Subject: [Moscow.pm] =?utf-8?b?U01TINGBINGC0LXQu9C10YTQvtC90LAg0YEg0L8=?= =?utf-8?b?0L7QtNC00LXRgNC20LrQvtC5INC60LjRgNC40LvQu9C40YbRiw==?= Message-ID: <1453193423.598757169@f232.i.mail.ru> Отправка со своего модема. для отправки русского текста нужно отправлять в PDU mode и делать перекодировку текста. Не очень хочется разбиратся с кодировками может есть  готовые модули. может кто  подскажет? >Добрый день, > >Речь об использовании своего GSM модема >или сторонних сервисов? >А какой модуль не поддерживает >кириллицу? > >On Вт, янв 19, 2016 в 10:29 , Максим Владимирович < mmm3 на bk.ru > wrote: >> Здравствуйте. >> >> Подскажите пожалуйста модуль для >> отправки SMS с телефона с поддержкой >> кириллицы. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 00:58:38 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 11:58:38 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: Не знаю зачем Володька сбрил усы... Сочувствую, меня сея беда пока не коснулась, и CGI и threads в v5.18.2 всё есть и работает от слова замечательно. :) Чего и другим желаю. 19 января 2016 г., 11:42 пользователь Anatoly Y написал: > Конечно, ведь целый гавномодуль threads удалили. А ещё убрали из коре CGI > и теперь на перле нельзя > писать полноценные веб приложения :( > > 2016-01-19 14:40 GMT+06:00 Alessandro Gorohovski > : > >> Значит >> Программирование на Perl / Ларри Уолл, Том Кристиансен, ... >> можно "ф топку..."? >> >> >> 19 января 2016 г., 11:34 пользователь Alessandro Gorohovski < >> an.gorohovski на gmail.com> написал: >> >> OMG! I got it: >>> > That model was deprecated, and has been removed in version 5.10. >>> Only I have got: >>> >>> $ perl -v >>> This is perl 5, version 18, subversion 2 (v5.18.2) built for >>> x86_64-linux-gnu-thread-multi >>> >>> It's much newer version 5.10 >>> >>> Ok. Thanks of lot. >>> >>> >>> 19 января 2016 г., 11:05 пользователь Dmitry L. >>> написал: >>> >>> http://perldoc.perl.org/Thread.html >>>> >>>> 2016-01-19 11:01 GMT+03:00 Alessandro Gorohovski < >>>> an.gorohovski на gmail.com>: >>>> > Приветствую >>>> > Уважаемое сообщество, >>>> > >>>> > Подскажите есть ли принципиальные отличия в пользовании >>>> > между >>>> > use Thread; >>>> > и >>>> > use threads; >>>> > >>>> > Может я что-то пропустил. >>>> > Спасибо, Александр. >>>> > >>>> > -- >>>> > Moscow.pm mailing list >>>> > moscow-pm на pm.org | http://moscow.pm.org >>>> > >>>> -- >>>> //wbr, Dmitry L. >>>> >>> ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From tzirulnicov на mail.ru Tue Jan 19 00:59:50 2016 From: tzirulnicov на mail.ru (=?UTF-8?B?0KbRi9GA0YPQu9GM0L3QuNC60L7QsiDQktCw0LTQuNC8?=) Date: Tue, 19 Jan 2016 11:59:50 +0300 Subject: [Moscow.pm] =?utf-8?b?U01TINGBINGC0LXQu9C10YTQvtC90LAg0YEg0L8=?= =?utf-8?b?0L7QtNC00LXRgNC20LrQvtC5INC60LjRgNC40LvQu9C40YbRiw==?= In-Reply-To: <1453193423.598757169@f232.i.mail.ru> References: <1453193423.598757169@f232.i.mail.ru> Message-ID: <1453193990.397868152@f408.i.mail.ru> Нужно перекодировать в ucs2: use Encode; $ucs2 = encode("UTF-16be", $utf8_text); >Вторник, 19 января 2016, 11:50 +03:00 от Максим Владимирович : > >Отправка со своего модема. >для отправки русского текста нужно отправлять в PDU mode и делать перекодировку текста. >Не очень хочется разбиратся с кодировками может есть  готовые модули. может кто  подскажет? > > >>Добрый день, >> >>Речь об использовании своего GSM модема >>или сторонних сервисов? >>А какой модуль не поддерживает >>кириллицу? >> >>On Вт, янв 19, 2016 в 10:29 , Максим >Владимирович < mmm3 на bk.ru > wrote: >>> Здравствуйте. >>> >>> Подскажите пожалуйста модуль для >>> отправки SMS с телефона с поддержкой >>> кириллицы. >-- >Moscow.pm mailing list >moscow-pm на pm.org | http://moscow.pm.org С уважением, Вадим Цырульников tzirulnicov на mail.ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel на kuptsov.info Tue Jan 19 01:07:19 2016 From: pavel на kuptsov.info (=?UTF-8?B?0J/QsNCy0LXQuyDQmtGD0L/RhtC+0LI=?=) Date: Tue, 19 Jan 2016 12:07:19 +0300 Subject: [Moscow.pm] use Thread vs threads Message-ID: Удалили Thread (но не threads) вроде? Про CGI это вы мощно сказали! :-D > Конечно, ведь целый гавномодуль threads удалили. А ещё убрали из коре CGI и > теперь на перле нельзя > писать полноценные веб приложения :( > > > > ------------------------------ > > Конец Дайджест списка рассылки Moscow-pm; том 99, выпуск 15 > > *********************************************************************************************** > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From iskhartakh на gmail.com Tue Jan 19 01:09:35 2016 From: iskhartakh на gmail.com (Anatoly Y) Date: Tue, 19 Jan 2016 15:09:35 +0600 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: Да, Thread. Но погодите, сейчас кто-нибудь объявится и сообщит, что у него в 5.8 всё есть :) 2016-01-19 15:07 GMT+06:00 Павел Купцов : > Удалили Thread (но не threads) вроде? > Про CGI это вы мощно сказали! :-D > > > >> Конечно, ведь целый гавномодуль threads удалили. А ещё убрали из коре CGI >> и >> теперь на перле нельзя >> писать полноценные веб приложения :( >> >> >> >> ------------------------------ >> >> Конец Дайджест списка рассылки Moscow-pm; том 99, выпуск 15 >> >> *********************************************************************************************** >> > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chesnokov.ilya на gmail.com Tue Jan 19 01:16:58 2016 From: chesnokov.ilya на gmail.com (Ilya Chesnokov) Date: Tue, 19 Jan 2016 12:16:58 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: 19 января 2016 г., 11:34 пользователь Alessandro Gorohovski написал: > OMG! I got it: >> That model was deprecated, and has been removed in version 5.10. ... For old code and interim backwards compatibility, the "Thread" module has been reworked to function as a frontend for the new interpreter threads (ithreads) model. ... Так что он все еще служит фронтэндом для модуля threads - предоставляет другой интерфейс. > Only I have got: > > $ perl -v > This is perl 5, version 18, subversion 2 (v5.18.2) built for > x86_64-linux-gnu-thread-multi > > It's much newer version 5.10 > > Ok. Thanks of lot. > > > 19 января 2016 г., 11:05 пользователь Dmitry L. написал: > >> http://perldoc.perl.org/Thread.html >> >> 2016-01-19 11:01 GMT+03:00 Alessandro Gorohovski >> : >> > Приветствую >> > Уважаемое сообщество, >> > >> > Подскажите есть ли принципиальные отличия в пользовании >> > между >> > use Thread; >> > и >> > use threads; >> > >> > Может я что-то пропустил. >> > Спасибо, Александр. >> > >> > >> > -- >> > Moscow.pm mailing list >> > moscow-pm на pm.org | http://moscow.pm.org >> > >> >> >> >> -- >> //wbr, Dmitry L. >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > -- Best regards, Ilya Chesnokov From an.gorohovski на gmail.com Tue Jan 19 01:25:00 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 12:25:00 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: Вы правы, интуиция вас не подвела. У меня на 5.8 all inclusive 19 января 2016 г., 12:09 пользователь Anatoly Y написал: > Да, Thread. Но погодите, сейчас кто-нибудь объявится и сообщит, что у него > в 5.8 всё есть :) > > 2016-01-19 15:07 GMT+06:00 Павел Купцов : > >> Удалили Thread (но не threads) вроде? >> Про CGI это вы мощно сказали! :-D >> >> >> >>> Конечно, ведь целый гавномодуль threads удалили. А ещё убрали из коре >>> CGI и >>> теперь на перле нельзя >>> писать полноценные веб приложения :( >>> >>> >>> >>> ------------------------------ >>> >>> Конец Дайджест списка рассылки Moscow-pm; том 99, выпуск 15 >>> >>> *********************************************************************************************** >>> >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nordicdyno на yandex.ru Tue Jan 19 06:02:16 2016 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Tue, 19 Jan 2016 17:02:16 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: <1638771453212136@web18o.yandex.ru> Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Tue Jan 19 06:28:49 2016 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 19 Jan 2016 17:28:49 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: Message-ID: <20160119142849.GS11360@vdsl.uvw.ru> > Подскажите есть ли принципиальные отличия в пользовании > между > use Thread; > и > use threads; > Может я что-то пропустил. > Спасибо, Александр. и то и другое - зло и использовать его поэтому не нужно. причем это относится не только к Perl, но и к практически всем другим скриптовым языкам (python, ruby, etc) From an.gorohovski на gmail.com Tue Jan 19 06:39:27 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 17:39:27 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: <1638771453212136@web18o.yandex.ru> References: <1638771453212136@web18o.yandex.ru> Message-ID: Ничего не сдерживает. Зачем: работает, не трогай. Конечно, есть и по свежее версия v5.18. 19 января 2016 г., 17:02 пользователь Orlovsky Alexander < nordicdyno на yandex.ru> написал: > а что сдерживает с перехода на что-нибудь посвежее? > xs-легаси или дистрибутив? > > 19.01.2016, 12:26, "Alessandro Gorohovski" : > > Вы правы, интуиция вас не подвела. > У меня на 5.8 > all inclusive > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 06:45:25 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 17:45:25 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: <20160119142849.GS11360@vdsl.uvw.ru> References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: Ok. А, что тогда не зло? Наверное процессы (fork)? Тогда геморойно с обмен общими данными. 19 января 2016 г., 17:28 пользователь Ivan Petrov написал: > > > Подскажите есть ли принципиальные отличия в пользовании > > между > > use Thread; > > и > > use threads; > > > Может я что-то пропустил. > > Спасибо, Александр. > > и то и другое - зло и использовать его поэтому не нужно. > причем это относится не только к Perl, но и к практически всем другим > скриптовым языкам (python, ruby, etc) > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From victor на vsespb.ru Tue Jan 19 06:54:48 2016 From: victor на vsespb.ru (Victor Efimov) Date: Tue, 19 Jan 2016 17:54:48 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: fork отличная штука и явно не зло 19 Янв 2016 г. 17:45 пользователь "Alessandro Gorohovski" < an.gorohovski на gmail.com> написал: > Ok. > А, что тогда не зло? > > Наверное процессы (fork)? > Тогда геморойно с обмен общими данными. > > 19 января 2016 г., 17:28 пользователь Ivan Petrov > написал: > >> >> > Подскажите есть ли принципиальные отличия в пользовании >> > между >> > use Thread; >> > и >> > use threads; >> >> > Может я что-то пропустил. >> > Спасибо, Александр. >> >> и то и другое - зло и использовать его поэтому не нужно. >> причем это относится не только к Perl, но и к практически всем другим >> скриптовым языкам (python, ruby, etc) >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From gnatyna на ya.ru Tue Jan 19 06:53:54 2016 From: gnatyna на ya.ru (Alexander Gnatyna) Date: Tue, 19 Jan 2016 17:53:54 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: <1620397.Vl7YM1D6Jy@linux.local> У форков есть use forks; "drop-in replacement for Perl threads using fork()" (c) Но там обмен данными медленный, если постоянно туда-сюда дёргать - threads много шустрее. В письме от 19 января 2016 17:45:25 пользователь Alessandro Gorohovski написал: > Ok. > А, что тогда не зло? > > Наверное процессы (fork)? > Тогда геморойно с обмен общими данными. > > 19 января 2016 г., 17:28 пользователь Ivan Petrov > написал: > > > > > > > > > Подскажите есть ли принципиальные отличия в пользовании > > > между > > > use Thread; > > > и > > > use threads; > > > > > > > > > Может я что-то пропустил. > > > Спасибо, Александр. > > > > > > > > и то и другое - зло и использовать его поэтому не нужно. > > причем это относится не только к Perl, но и к практически всем другим > > скриптовым языкам (python, ruby, etc) > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > From i.petro.77.00 на gmail.com Tue Jan 19 09:39:09 2016 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 19 Jan 2016 20:39:09 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: <20160119173909.GT11360@vdsl.uvw.ru> > Ok. > А, что тогда не зло? fork > Наверное процессы (fork)? > Тогда геморойно с обмен общими данными. но это единственный способ. в общих чертах суть в следующем. в обычном скриптовом языке, допускающем глобальные переменные (= переменные в области видимости) банально невозможно реализовать мултитред, так чтобы не вводить ограничения в язык с одной стороны и не сегфолтить с другой. выходов ровно два: либо mutex внутри каждого скаляра, либо глобальный mutex в сочетании с mutex к функциям что в традиционной однотредовой программе приводит к диким потерям производительности. соответственно я пока не видел скриптового языка, в который воткнули треды и это работает. треды либо изначально есть в языке, либо их втыкают со значительными ограничениями на сам язык. другого варианта нет. поэтому тредов никогда не будет ни в питоне ни в перле ни в руби ни в прочих языках такого же уровня. насчет "геморройно" - ответ такой: пробуйте Go, пробуйте Erlang. в них геморройно нечто другое. однако с тредами (и даже хостами) все хорошо From agrishaev на gmail.com Tue Jan 19 10:20:23 2016 From: agrishaev на gmail.com (=?UTF-8?B?0JPRgNC40YjQsNC10LIg0JDQvdCw0YLQvtC70LjQuQ==?=) Date: Tue, 19 Jan 2016 21:20:23 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: 19 января 2016 г., 17:45 пользователь Alessandro Gorohovski < an.gorohovski на gmail.com> написал: > Ok. > А, что тогда не зло? > > Наверное процессы (fork)? > fork > Тогда геморойно с обмен общими данными. > Чем unix сокеты плохи, или же тот же pipe? А с сокетами весь интернет живет и не жалуется, что это геморойно. И в производительность упереться можно, если только захотеть десятков тысяч запросов в секунду. Вообще есть мненние, что все болезни от головы, как и мнение, что если Вы не любите кошек, то Вы просто не умеете их готовить. > 19 января 2016 г., 17:28 пользователь Ivan Petrov > написал: > > >> > Подскажите есть ли принципиальные отличия в пользовании >> > между >> > use Thread; >> > и >> > use threads; >> >> > Может я что-то пропустил. >> > Спасибо, Александр. >> >> и то и другое - зло и использовать его поэтому не нужно. >> причем это относится не только к Perl, но и к практически всем другим >> скриптовым языкам (python, ruby, etc) >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 10:20:50 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 21:20:50 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: <20160119173909.GT11360@vdsl.uvw.ru> References: <20160119142849.GS11360@vdsl.uvw.ru> <20160119173909.GT11360@vdsl.uvw.ru> Message-ID: Постойте, так треды (threads, потоки) уже давно воткнули в Perl (по моему еще с v5.005). Или речь идёт о параллельных процессах, реализуемых fork? ​Так они тоже, с самого начала были. Может я что-то пропустил, почитать бы более менее достойную книгу надо. Только какую... Всё равно Спасибо. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Tue Jan 19 10:21:55 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Tue, 19 Jan 2016 21:21:55 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> <20160119173909.GT11360@vdsl.uvw.ru> Message-ID: GIL?) 19 января 2016 г., 21:20 пользователь Alessandro Gorohovski < an.gorohovski на gmail.com> написал: > Постойте, так треды (threads, потоки) уже давно воткнули в Perl (по моему > еще с v5.005). > > Или речь идёт о параллельных процессах, реализуемых fork? > ​Так они тоже, с самого начала были. > > Может я что-то пропустил, почитать бы более менее достойную > книгу надо. Только какую... > > Всё равно Спасибо. > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 10:25:14 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 21:25:14 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: 19 января 2016 г., 21:20 пользователь Гришаев Анатолий написал: > > > 19 января 2016 г., 17:45 пользователь Alessandro Gorohovski < > an.gorohovski на gmail.com> написал: > >> Ok. >> А, что тогда не зло? >> >> Наверное процессы (fork)? >> > > fork > >> Тогда геморойно с обмен общими данными. >> > > > Чем unix сокеты плохи, или же тот же pipe? > Да ничем они не плохи. А с сокетами весь интернет живет и не жалуется, что это геморойно. > И в производительность упереться можно, если только захотеть десятков > тысяч запросов в секунду. > > Вообще есть мненние, что все болезни от головы, как и мнение, что если Вы > не любите кошек, то Вы просто не умеете их готовить. > Это вы ловко подметили насчёт кошек. "Отвари потихоньку калитку..." :) > > > >> 19 января 2016 г., 17:28 пользователь Ivan Petrov < >> i.petro.77.00 на gmail.com> написал: >> >> >>> > Подскажите есть ли принципиальные отличия в пользовании >>> > между >>> > use Thread; >>> > и >>> > use threads; >>> >>> > Может я что-то пропустил. >>> > Спасибо, Александр. >>> >>> и то и другое - зло и использовать его поэтому не нужно. >>> причем это относится не только к Perl, но и к практически всем другим >>> скриптовым языкам (python, ruby, etc) >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 10:31:28 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Tue, 19 Jan 2016 21:31:28 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> <20160119173909.GT11360@vdsl.uvw.ru> Message-ID: Так это же из мира Python Нет? 19 января 2016 г., 21:21 пользователь Akzhan Abdulin < akzhan.abdulin на gmail.com> написал: > GIL?) > > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Tue Jan 19 10:36:32 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Tue, 19 Jan 2016 21:36:32 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> <20160119173909.GT11360@vdsl.uvw.ru> Message-ID: 19 января 2016 г., 21:31 пользователь Alessandro Gorohovski < an.gorohovski на gmail.com> написал: > же из мира Python А что есть старые интерпретаторы без GIL? В том же Ruby есть ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From akzhan.abdulin на gmail.com Tue Jan 19 10:37:18 2016 From: akzhan.abdulin на gmail.com (Akzhan Abdulin) Date: Tue, 19 Jan 2016 21:37:18 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> <20160119173909.GT11360@vdsl.uvw.ru> Message-ID: Даже в WinAPI есть какие-то GL. 19 января 2016 г., 21:36 пользователь Akzhan Abdulin < akzhan.abdulin на gmail.com> написал: > > 19 января 2016 г., 21:31 пользователь Alessandro Gorohovski < > an.gorohovski на gmail.com> написал: > >> же из мира Python > > > А что есть старые интерпретаторы без GIL? В том же Ruby есть > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Tue Jan 19 11:27:55 2016 From: agrishaev на gmail.com (=?UTF-8?B?0JPRgNC40YjQsNC10LIg0JDQvdCw0YLQvtC70LjQuQ==?=) Date: Tue, 19 Jan 2016 22:27:55 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: > > А с сокетами весь интернет живет и не жалуется, что это геморойно. > И в производительность упереться можно, если только захотеть десятков > тысяч запросов в секунду. > > Вообще есть мненние, что все болезни от головы, как и мнение, что если Вы > не любите кошек, то Вы просто не умеете их готовить. > Это вы ловко подметили насчёт кошек. "Отвари потихоньку калитку..." :) Ну стаким подходом разницы между threads и Thread не будет. Прямо из документации: "For new code the use of the "Thread" module is discouraged and the direct use of the "threads" and "threads::shared" modules is encouraged instead." Собственно (use threads), вполне рабочие для некоторых задач. Но меня напрягает: 1) Трудно решаемые проблемы производительности, если нужно обмениваться данными и не только (подсмотрел у Marc Lerman) 2) отсутствие аналога команды waitpid(-1, WNOHANG) для потоков. Для меня форки оказались более живучей моделью, чем нынешние потоки в перле. А преимуществ потоков перед вилками я не видел, по крайней мере, носом к носу с ними не сталкивался. А по поводу обратных проблем ---- некоторое колво у меня было. > > >> 19 января 2016 г., 17:28 пользователь Ivan Petrov < >> i.petro.77.00 на gmail.com> написал: >> >> >>> > Подскажите есть ли принципиальные отличия в пользовании >>> > между >>> > use Thread; >>> > и >>> > use threads; >>> >>> > Может я что-то пропустил. >>> > Спасибо, Александр. >>> >>> и то и другое - зло и использовать его поэтому не нужно. >>> причем это относится не только к Perl, но и к практически всем другим >>> скриптовым языкам (python, ruby, etc) >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From an.gorohovski на gmail.com Tue Jan 19 22:53:56 2016 From: an.gorohovski на gmail.com (Alessandro Gorohovski) Date: Wed, 20 Jan 2016 09:53:56 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: > > > Ну стаким подходом разницы между threads и Thread не будет. > Прямо из документации: > "For new code the use of the "Thread" module is discouraged and the direct > use of the "threads" and "threads::shared" modules is encouraged instead." > Да, действительно, принципиальной разницы в производительности и подходах к решению задач между threads и Thread тоже не заметил. > Собственно (use threads), вполне рабочие для некоторых задач. > Но меня напрягает: > 1) Трудно решаемые проблемы производительности, если нужно обмениваться > данными и не только (подсмотрел у Marc Lerman) > Согласен с Вами --- производительность, мягко говоря, хромает, никудышняя. Немного спасает use forks, от слов "очень немного". > 2) отсутствие аналога команды waitpid(-1, WNOHANG) для потоков. > > Для меня форки оказались более живучей моделью, чем нынешние потоки в > перле. > А преимуществ потоков перед вилками я не видел, по крайней мере, носом к > носу с ними не сталкивался. > А по поводу обратных проблем ---- некоторое колво у меня было. > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From i.petro.77.00 на gmail.com Wed Jan 20 01:42:29 2016 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Wed, 20 Jan 2016 12:42:29 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> <20160119173909.GT11360@vdsl.uvw.ru> Message-ID: <20160120094229.GU11360@vdsl.uvw.ru> > Постойте, так треды (threads, потоки) уже давно воткнули в Perl (по моему еще с > v5.005). и они там в статусе experimental и всегда будут в подобном статусе From nordicdyno на yandex.ru Thu Jan 21 07:18:41 2016 From: nordicdyno на yandex.ru (Orlovsky Alexander) Date: Thu, 21 Jan 2016 18:18:41 +0300 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <1638771453212136@web18o.yandex.ru> Message-ID: <55061453389521@web23o.yandex.ru> Вложение в формате HTML было извлечено… URL: From kes-kes на yandex.ru Sat Jan 23 11:52:18 2016 From: kes-kes на yandex.ru (Eugen Konkov) Date: Sat, 23 Jan 2016 17:52:18 -0200 Subject: [Moscow.pm] use Thread vs threads In-Reply-To: References: <20160119142849.GS11360@vdsl.uvw.ru> Message-ID: <1223799712.20160123175218@yandex.ru> Вложение в формате HTML было извлечено… URL: From dzirtik на gmail.com Sun Jan 24 03:17:59 2016 From: dzirtik на gmail.com (=?UTF-8?B?0J/QsNCy0LXQuyDQqdC10YDQsdC40L3QuNC9?=) Date: Sun, 24 Jan 2016 14:17:59 +0300 Subject: [Moscow.pm] =?utf-8?b?0JLRgdGC0YDQtdGH0LAgTW9zY293LnBtIC0gNCA=?= =?utf-8?b?0YTQtdCy0YDQsNC70Y8=?= Message-ID: Привет! Соскучились по встречам? Мы тоже! 4 февраля в офисе компании Mail.Ru Group снова соберутся Perl-программисты сообщества Moscow.pm . Участники всемирной ассоциации Perl Mongers регулярно встречаются, чтобы обсуждать актуальные вопросы, рассказывать об интересных случаях из практики и обмениваться опытом. Программа мероприятия: — «Технологии конкурентного программирования», Илья Чесноков (программист в UK2 Group) Используете ли вы технологии конкурентного программирования — потоки (треды), форки, асинхронный I/O? Почему использование тредов в Perl не рекомендуется? Как работает асинхронный ввод/вывод? Что такое сопрограммы и зачем они нужны? Илья расскажет о том, как попытался исследовать и сравнить различные технологии конкурентного (параллельного и асинхронного) программирования. — «Учимся рисовать», Дмитрий Симонов (независимый программист) Краткая история о том, как сделать удобной генерацию красивых картинок без программистов. Будут показаны примеры кода, статистика, бенчмарки и некоторые интересны факты. Дмитрий расскажет о применении Perl, как клея, при сборке комплексных автоматизированных решений на примере фотошоп-кластера. — «Index Condition Pushdown», Павел Щербинин (руководитель групп разработки Новости и Hi-Tech в Mail.Ru Group) В MySQL 5.6 появилась особая стратегия поиска по индексу ICP. В своём докладе Павел рассмотрит примеры и особенности её использования. Участников ждут теория, примеры и практика. Сбор и регистрация участников: 18:30 Начало докладов: 19:00 Адрес: офис Mail.Ru Group, Ленинградский пр., 39, стр. 79. Обязательна регистрация: https://corp.mail.ru/ru/press/events/168/ -- С Уважением, Щербинин Павел ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From agrishaev на gmail.com Mon Jan 25 01:16:26 2016 From: agrishaev на gmail.com (=?UTF-8?B?0JPRgNC40YjQsNC10LIg0JDQvdCw0YLQvtC70LjQuQ==?=) Date: Mon, 25 Jan 2016 12:16:26 +0300 Subject: [Moscow.pm] =?utf-8?b?0JDQstGC0L7QtNC10YLQsNC70Lgg0Lgg0LLRgdC1?= =?utf-8?b?INC/0YDQvtGH0LXQtSAo0JjRidGDINGH0LXQu9C+0LLQtdC60LAp?= Message-ID: Привет. Тут вспомнил про встречу Moscow.pm в ноябре, где мы сидели в баре и обсуждали применение Perl к продаже автоаксесуаров. Скиньте мне контакты того человека с автодеталями, или сам отзовись, если читаешь рассылку. Тема для нас кажется интересной. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From unknown.vagrant на gmail.com Tue Jan 26 00:38:33 2016 From: unknown.vagrant на gmail.com (Nikolay Poletaev) Date: Tue, 26 Jan 2016 11:38:33 +0300 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9GMINC00LvRjyDQv9C+0LvRg9GH?= =?utf-8?b?0LXQvdC40Y8g0LjQvNC10L3QvtCy0LDQvdC90YvRhSDQsNGA0LPRg9C8?= =?utf-8?b?0LXQvdGC0L7Qsg==?= Message-ID: Всем привет, подскажите, какой модуль сейчас наиболее удобный (доп фичи) для получения именованных аргументов переданных в скрипт? Сейчас использую Getopt::Long, может что-то более интересное появилось? perl xxx.pl -x 1 -y 2 -z "for bar" From iskhartakh на gmail.com Tue Jan 26 00:39:38 2016 From: iskhartakh на gmail.com (Anatoly Y) Date: Tue, 26 Jan 2016 14:39:38 +0600 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9GMINC00LvRjyDQv9C+0LvRg9GH?= =?utf-8?b?0LXQvdC40Y8g0LjQvNC10L3QvtCy0LDQvdC90YvRhSDQsNGA0LPRg9C8?= =?utf-8?b?0LXQvdGC0L7Qsg==?= In-Reply-To: References: Message-ID: Успокойтесь, Getopt::Long прекрасен ) 2016-01-26 14:38 GMT+06:00 Nikolay Poletaev : > Всем привет, подскажите, какой модуль сейчас наиболее удобный (доп > фичи) для получения именованных аргументов переданных в скрипт? > > Сейчас использую Getopt::Long, может что-то более интересное появилось? > > perl xxx.pl -x 1 -y 2 -z "for bar" > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ivan на bessarabov.ru Tue Jan 26 02:05:01 2016 From: ivan на bessarabov.ru (=?UTF-8?B?0JjQstCw0L0g0JHQtdGB0YHQsNGA0LDQsdC+0LI=?=) Date: Tue, 26 Jan 2016 13:05:01 +0300 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9GMINC00LvRjyDQv9C+0LvRg9GH?= =?utf-8?b?0LXQvdC40Y8g0LjQvNC10L3QvtCy0LDQvdC90YvRhSDQsNGA0LPRg9C8?= =?utf-8?b?0LXQvdGC0L7Qsg==?= In-Reply-To: References: Message-ID: Мне нравится https://metacpan.org/pod/Getopt::Long::Descriptive — с его помощью удобно не только парсить параметры, но и help сделать. On Tuesday, 26 January 2016, Nikolay Poletaev wrote: > Всем привет, подскажите, какой модуль сейчас наиболее удобный (доп > фичи) для получения именованных аргументов переданных в скрипт? > > Сейчас использую Getopt::Long, может что-то более интересное появилось? > > perl xxx.pl -x 1 -y 2 -z "for bar" > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From asan999 на gmail.com Tue Jan 26 02:18:27 2016 From: asan999 на gmail.com (=?UTF-8?B?0JDQvdC00YDQtdC5INCQ0YHRj9C60LjQvQ==?=) Date: Tue, 26 Jan 2016 13:18:27 +0300 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9GMINC00LvRjyDQv9C+0LvRg9GH?= =?utf-8?b?0LXQvdC40Y8g0LjQvNC10L3QvtCy0LDQvdC90YvRhSDQsNGA0LPRg9C80LU=?= =?utf-8?b?0L3RgtC+0LI=?= In-Reply-To: References: Message-ID: <56A747F3.5080703@gmail.com> Вот да, чего людям не хватает...) On 01/26/2016 11:39 AM, Anatoly Y wrote: > Успокойтесь, Getopt::Long прекрасен ) > > 2016-01-26 14:38 GMT+06:00 Nikolay Poletaev >: > > Всем привет, подскажите, какой модуль сейчас наиболее удобный (доп > фичи) для получения именованных аргументов переданных в скрипт? > > Сейчас использую Getopt::Long, может что-то более интересное > появилось? > > perl xxx.pl -x 1 -y 2 -z "for bar" > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From gnatyna на ya.ru Tue Jan 26 02:34:59 2016 From: gnatyna на ya.ru (Alexander Gnatyna) Date: Tue, 26 Jan 2016 13:34:59 +0300 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9GMINC00LvRjyDQv9C+0LvRg9GH?= =?utf-8?b?0LXQvdC40Y8g0LjQvNC10L3QvtCy0LDQvdC90YvRhSDQsNGA0LPRg9C8?= =?utf-8?b?0LXQvdGC0L7Qsg==?= In-Reply-To: References: Message-ID: <10709901.tEq5yJgfrv@linux.local> +1 отличная вещь: значения по умолчанию, пустые секции для форматирования хелпа. Добавляем туда Pod::Usage и получаем сразу и --help и --man. В письме от 26 января 2016 13:05:01 пользователь Иван Бессарабов написал: > Мне нравится https://metacpan.org/pod/Getopt::Long::Descriptive — с его > помощью удобно не только парсить параметры, но и help сделать. > > On Tuesday, 26 January 2016, Nikolay Poletaev > wrote: > > > > Всем привет, подскажите, какой модуль сейчас наиболее удобный (доп > > фичи) для получения именованных аргументов переданных в скрипт? > > > > > > > > Сейчас использую Getopt::Long, может что-то более интересное появилось? > > > > > > > > perl xxx.pl -x 1 -y 2 -z "for bar" > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > From i.petro.77.00 на gmail.com Tue Jan 26 04:35:41 2016 From: i.petro.77.00 на gmail.com (Ivan Petrov) Date: Tue, 26 Jan 2016 15:35:41 +0300 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9GMINC00LvRjyDQv9C+0LvRg9GH?= =?utf-8?b?0LXQvdC40Y8g0LjQvNC10L3QvtCy0LDQvdC90YvRhSDQsNGA0LPRg9C8?= =?utf-8?b?0LXQvdGC0L7Qsg==?= In-Reply-To: References: Message-ID: <20160126123541.GD11360@vdsl.uvw.ru> > Успокойтесь, Getopt::Long прекрасен ) особенно в сочетании с pod2usage :) From proler на gmail.com Tue Jan 26 05:12:28 2016 From: proler на gmail.com (Oleg Alexeenkov) Date: Tue, 26 Jan 2016 16:12:28 +0300 Subject: [Moscow.pm] =?utf-8?b?0LzQvtC00YPQu9GMINC00LvRjyDQv9C+0LvRg9GH?= =?utf-8?b?0LXQvdC40Y8g0LjQvNC10L3QvtCy0LDQvdC90YvRhSDQsNGA0LPRg9C80LU=?= =?utf-8?b?0L3RgtC+0LI=?= In-Reply-To: References: Message-ID: Nikolay Poletaev писал(а) в своём письме Tue, 26 Jan 2016 11:38:33 +0300: > Всем привет, подскажите, какой модуль сейчас наиболее удобный (доп > фичи) для получения именованных аргументов переданных в скрипт? > > Сейчас использую Getopt::Long, может что-то более интересное появилось? > > perl xxx.pl -x 1 -y 2 -z "for bar" perl -MData::Dumper -e 'my $c = {}; s/^-*([^=]*)(?:=(.*))?/$c->{$1}=$2/e for @ARGV; warn Dumper $c' a=b -c=d e f= g=h=i From evgeniy на just4i.ru Tue Jan 26 13:18:47 2016 From: evgeniy на just4i.ru (Evgeniy Vansevich) Date: Wed, 27 Jan 2016 00:18:47 +0300 Subject: [Moscow.pm] =?koi8-r?b?+sHIz9TFzM/T2CDNzsUgIsjVy8/XIiDQz9PMxSDX?= =?koi8-r?b?2drP18EgZm9yay4=?= Message-ID: <378011453843127@web19h.yandex.ru> Вложение в формате HTML было извлечено… URL: From victor на vsespb.ru Tue Jan 26 13:26:27 2016 From: victor на vsespb.ru (Victor Efimov) Date: Wed, 27 Jan 2016 00:26:27 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= In-Reply-To: <378011453843127@web19h.yandex.ru> References: <378011453843127@web19h.yandex.ru> Message-ID: А зачем? 27 января 2016 г., 0:18 пользователь Evgeniy Vansevich написал: > Приветствую всех! Буквально несколько часов назад захотелось иметь нечто, > называемое child_callback. > А именно: мы форкаемся, и после форка в чилдах автоматом вызывается некая > функция, которая делает всю грязную работу за нас. > Быстрый поиск сказал, что ничего похожего нет, и как итог сделал сам. > Сделал 2 версии, первая версия после форка проходится по > арене(Devel::Gladiator) и ищет функции AFTER_FORK(для пакетов) и > AFTER_FORK_OBJ (для объектов). Которые потом и вызываются. > И вторая версия, которая хранит в себе "колбэки" которые нужно вызвать после > форка, колбэки из модулей сами напихиваем из модулей. > > Первая версия: https://gist.github.com/kadavr/e46fa7380b610bbf095e > Вторая версия: https://gist.github.com/kadavr/dbed30507eceb3509b22 > > Сразу вопросы: Какая реализация вам больше нравится? и нужен ли такой модуль > на cpan?. > > И моё мнение по поводу этих модулей: > Плюсы первой версии: > > Простой интерфейс - определяем в своём модуле две функции AFTER_FORK и > AFTER_FORK_OBJ, в зависимости от ситуации и остальное зависит уже от того, > кто использует модуль, - загрузил он его или нет. > Однозначно живые объекты, и мы никак не влияем на время жизни объекта(Об > этом ниже). > > Минусы: > > Скорость работы зависит от размера арены(можно ускорить перенеся всю логику > в xs). > > Плюсы второй версии: > > Элементарная pure perl реализация. > Скорость работы зависит от кол-ва колбэков.(Их явно меньше, чем sv в арене). > > Минусы > > Так как мы используем колбэки, то всё что мы захватим то будет жить ровно до > момента выхода. > Или можно взять weaken и каждый раз проверять "валидность" ссылки. > > Спасибо. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From evgeniy на just4i.ru Tue Jan 26 13:44:02 2016 From: evgeniy на just4i.ru (evgeniy) Date: Wed, 27 Jan 2016 00:44:02 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= References: Message-ID: Вложение в формате HTML было извлечено… URL: From victor на vsespb.ru Tue Jan 26 13:49:39 2016 From: victor на vsespb.ru (Victor Efimov) Date: Wed, 27 Jan 2016 00:49:39 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= In-Reply-To: References: Message-ID: А классический подход - запомнить pid, а потом его сверять - не устраивает? 27 января 2016 г., 0:44 пользователь evgeniy написал: > Надеюсь на то, что авторы модулей типо DBI будут реализовывать свои > reconnect_after_fork , для того, что бы лишний раз не заморачиваться по > поводу открытых коннектов. Как то так:) > > > Отправлено с Mi Phone > 27 янв. 2016 г. 0:26 | От: Victor Efimov | Сообщение: > > А зачем? > > 27 января 2016 г., 0:18 пользователь Evgeniy Vansevich > написал: >> Приветствую всех! Буквально несколько часов назад захотелось иметь нечто, >> называемое child_callback. >> А именно: мы форкаемся, и после форка в чилдах автоматом вызывается некая >> функция, которая делает всю грязную работу за нас. >> Быстрый поиск сказал, что ничего похожего нет, и как итог сделал сам. >> Сделал 2 версии, первая версия после форка проходится по >> арене(Devel::Gladiator) и ищет функции AFTER_FORK(для пакетов) и >> AFTER_FORK_OBJ (для объектов). Которые потом и вызываются. >> И вторая версия, которая хранит в себе "колбэки" которые нужно вызвать >> после >> форка, колбэки из модулей сами напихиваем из модулей. >> >> Первая версия: https://gist.github.com/kadavr/e46fa7380b610bbf095e >> Вторая версия: https://gist.github.com/kadavr/dbed30507eceb3509b22 >> >> Сразу вопросы: Какая реализация вам больше нравится? и нужен ли такой >> модуль >> на cpan?. >> >> И моё мнение по поводу этих модулей: >> Плюсы первой версии: >> >> Простой интерфейс - определяем в своём модуле две функции AFTER_FORK и >> AFTER_FORK_OBJ, в зависимости от ситуации и остальное зависит уже от того, >> кто использует модуль, - загрузил он его или нет. >> Однозначно живые объекты, и мы никак не влияем на время жизни объекта(Об >> этом ниже). >> >> Минусы: >> >> Скорость работы зависит от размера арены(можно ускорить перенеся всю >> логику >> в xs). >> >> Плюсы второй версии: >> >> Элементарная pure perl реализация. >> Скорость работы зависит от кол-ва колбэков.(Их явно меньше, чем sv в >> арене). >> >> Минусы >> >> Так как мы используем колбэки, то всё что мы захватим то будет жить ровно >> до >> момента выхода. >> Или можно взять weaken и каждый раз проверять "валидность" ссылки. >> >> Спасибо. >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From evgeniy на just4i.ru Tue Jan 26 13:55:35 2016 From: evgeniy на just4i.ru (evgeniy) Date: Wed, 27 Jan 2016 00:55:35 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= References: Message-ID: Вложение в формате HTML было извлечено… URL: From victor на vsespb.ru Tue Jan 26 13:58:27 2016 From: victor на vsespb.ru (Victor Efimov) Date: Wed, 27 Jan 2016 00:58:27 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= In-Reply-To: References: Message-ID: так "кажный раз" когда они делают if $pid eq $$ им нужно заменить на "каждый раз" добавлять коллбэк 27 января 2016 г., 0:55 пользователь evgeniy написал: > И так каждый раз? А так возможно будет из коробки, с самыми основными > модулями. > > > Отправлено с Mi Phone > 27 янв. 2016 г. 0:49 | От: Victor Efimov | Сообщение: > > А классический подход - запомнить pid, а потом его сверять - не устраивает? > > 27 января 2016 г., 0:44 пользователь evgeniy написал: >> Надеюсь на то, что авторы модулей типо DBI будут реализовывать свои >> reconnect_after_fork , для того, что бы лишний раз не заморачиваться по >> поводу открытых коннектов. Как то так:) >> >> >> Отправлено с Mi Phone >> 27 янв. 2016 г. 0:26 | От: Victor Efimov | Сообщение: >> >> А зачем? >> >> 27 января 2016 г., 0:18 пользователь Evgeniy Vansevich >> написал: >>> Приветствую всех! Буквально несколько часов назад захотелось иметь нечто, >>> называемое child_callback. >>> А именно: мы форкаемся, и после форка в чилдах автоматом вызывается некая >>> функция, которая делает всю грязную работу за нас. >>> Быстрый поиск сказал, что ничего похожего нет, и как итог сделал сам. >>> Сделал 2 версии, первая версия после форка проходится по >>> арене(Devel::Gladiator) и ищет функции AFTER_FORK(для пакетов) и >>> AFTER_FORK_OBJ (для объектов). Которые потом и вызываются. >>> И вторая версия, которая хранит в себе "колбэки" которые нужно вызвать >>> после >>> форка, колбэки из модулей сами напихиваем из модулей. >>> >>> Первая версия: https://gist.github.com/kadavr/e46fa7380b610bbf095e >>> Вторая версия: https://gist.github.com/kadavr/dbed30507eceb3509b22 >>> >>> Сразу вопросы: Какая реализация вам больше нравится? и нужен ли такой >>> модуль >>> на cpan?. >>> >>> И моё мнение по поводу этих модулей: >>> Плюсы первой версии: >>> >>> Простой интерфейс - определяем в своём модуле две функции AFTER_FORK и >>> AFTER_FORK_OBJ, в зависимости от ситуации и остальное зависит уже от >>> того, >>> кто использует модуль, - загрузил он его или нет. >>> Однозначно живые объекты, и мы никак не влияем на время жизни объекта(Об >>> этом ниже). >>> >>> Минусы: >>> >>> Скорость работы зависит от размера арены(можно ускорить перенеся всю >>> логику >>> в xs). >>> >>> Плюсы второй версии: >>> >>> Элементарная pure perl реализация. >>> Скорость работы зависит от кол-ва колбэков.(Их явно меньше, чем sv в >>> арене). >>> >>> Минусы >>> >>> Так как мы используем колбэки, то всё что мы захватим то будет жить ровно >>> до >>> момента выхода. >>> Или можно взять weaken и каждый раз проверять "валидность" ссылки. >>> >>> Спасибо. >>> >>> >>> -- >>> Moscow.pm mailing list >>> moscow-pm на pm.org | http://moscow.pm.org >>> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org >> > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > From evgeniy на just4i.ru Tue Jan 26 14:22:56 2016 From: evgeniy на just4i.ru (evgeniy) Date: Wed, 27 Jan 2016 01:22:56 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= References: Message-ID: Вложение в формате HTML было извлечено… URL: From parserpro на gmail.com Wed Jan 27 00:22:14 2016 From: parserpro на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzRi9GI0LrQuNC9?=) Date: Wed, 27 Jan 2016 11:22:14 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= In-Reply-To: References: Message-ID: Мне второй вариант симпатечней. 27 января 2016 г., 1:22 пользователь evgeniy написал: > > > > > Отправлено с Mi Phone > ---------- Перенаправленное сообщение ---------- > От: evgeniy | > Дата: 27 янв. 2016 г. 1:15 | > Тема: Re: [Moscow.pm] Захотелось мне "хуков" после вызова fork. | > Кому: Victor Efimov Копия: > > Один раз для первого варианта, да и для второго тоже. Добавляем в модуль > например sub AFTER_FORK_OBJ{ } и как итог эта функция будет автоматически > вызываться в чилде после форка, для объектов данного типа > > Отправлено с Mi Phone > 27 янв. 2016 г. 0:58 | От: Victor Efimov | Сообщение: > > так "кажный раз" когда они делают if $pid eq $$ им нужно заменить на > "каждый раз" добавлять коллбэк > > 27 января 2016 г., 0:55 пользователь evgeniy написал: > > И так каждый раз? А так возможно будет из коробки, с самыми основными > > модулями. > > > > > > Отправлено с Mi Phone > > 27 янв. 2016 г. 0:49 | От: Victor Efimov | > Сообщение: > > > > А классический подход - запомнить pid, а потом его сверять - не > устраивает? > > > > 27 января 2016 г., 0:44 пользователь evgeniy > написал: > >> Надеюсь на то, что авторы модулей типо DBI будут реализовывать свои > >> reconnect_after_fork , для того, что бы лишний раз не заморачиваться по > >> поводу открытых коннектов. Как то так:) > >> > >> > >> Отправлено с Mi Phone > >> 27 янв. 2016 г. 0:26 | От: Victor Efimov | > Сообщение: > >> > >> А зачем? > >> > >> 27 января 2016 г., 0:18 пользователь Evgeniy Vansevich > >> написал: > >>> Приветствую всех! Буквально несколько часов назад захотелось иметь > нечто, > >>> называемое child_callback. > >>> А именно: мы форкаемся, и после форка в чилдах автоматом вызывается > некая > >>> функция, которая делает всю грязную работу за нас. > >>> Быстрый поиск сказал, что ничего похожего нет, и как итог сделал сам. > >>> Сделал 2 версии, первая версия после форка проходится по > >>> арене(Devel::Gladiator) и ищет функции AFTER_FORK(для пакетов) и > >>> AFTER_FORK_OBJ (для объектов). Которые потом и вызываются. > >>> И вторая версия, которая хранит в себе "колбэки" которые нужно вызвать > >>> после > >>> форка, колбэки из модулей сами напихиваем из модулей. > >>> > >>> Первая версия: https://gist.github.com/kadavr/e46fa7380b610bbf095e > >>> Вторая версия: https://gist.github.com/kadavr/dbed30507eceb3509b22 > >>> > >>> Сразу вопросы: Какая реализация вам больше нравится? и нужен ли такой > >>> модуль > >>> на cpan?. > >>> > >>> И моё мнение по поводу этих модулей: > >>> Плюсы первой версии: > >>> > >>> Простой интерфейс - определяем в своём модуле две функции AFTER_FORK и > >>> AFTER_FORK_OBJ, в зависимости от ситуации и остальное зависит уже от > >>> того, > >>> кто использует модуль, - загрузил он его или нет. > >>> Однозначно живые объекты, и мы никак не влияем на время жизни > объекта(Об > >>> этом ниже). > >>> > >>> Минусы: > >>> > >>> Скорость работы зависит от размера арены(можно ускорить перенеся всю > >>> логику > >>> в xs). > >>> > >>> Плюсы второй версии: > >>> > >>> Элементарная pure perl реализация. > >>> Скорость работы зависит от кол-ва колбэков.(Их явно меньше, чем sv в > >>> арене). > >>> > >>> Минусы > >>> > >>> Так как мы используем колбэки, то всё что мы захватим то будет жить > ровно > >>> до > >>> момента выхода. > >>> Или можно взять weaken и каждый раз проверять "валидность" ссылки. > >>> > >>> Спасибо. > >>> > >>> > >>> -- > >>> Moscow.pm mailing list > >>> moscow-pm на pm.org | http://moscow.pm.org > >>> > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > >> > >> > >> -- > >> Moscow.pm mailing list > >> moscow-pm на pm.org | http://moscow.pm.org > >> > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > > > > -- > > Moscow.pm mailing list > > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением, Мышкин Алексей. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evgeniy на just4i.ru Wed Jan 27 00:26:44 2016 From: evgeniy на just4i.ru (Evgeniy Vansevich) Date: Wed, 27 Jan 2016 11:26:44 +0300 Subject: [Moscow.pm] =?koi8-r?b?+sHIz9TFzM/T2CDNzsUgIsjVy8/XIiDQz9PMxSDX?= =?koi8-r?b?2drP18EgZm9yay4=?= In-Reply-To: References: Message-ID: <1648921453883204@web13o.yandex.ru> Вложение в формате HTML было извлечено… URL: From parserpro на gmail.com Wed Jan 27 00:44:58 2016 From: parserpro на gmail.com (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JzRi9GI0LrQuNC9?=) Date: Wed, 27 Jan 2016 11:44:58 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= In-Reply-To: <1648921453883204@web13o.yandex.ru> References: <1648921453883204@web13o.yandex.ru> Message-ID: Симпатичен простотой. Про время жизни помнить - это чтобы не вызвать коллбэк из "отжившего" объекта? А если на такой коллбэк ref вызвать - что получим? 27 января 2016 г., 11:26 пользователь Evgeniy Vansevich написал: > А чем? Просто ведь тогда нам придётся каждый раз думать о времени жизни > объекта. > > 27.01.2016, 11:22, "Алексей Мышкин" : > > Мне второй вариант симпатечней. > > 27 января 2016 г., 1:22 пользователь evgeniy написал: > > Отправлено с Mi Phone > ---------- Перенаправленное сообщение ---------- > От: evgeniy | > Дата: 27 янв. 2016 г. 1:15 | > Тема: Re: [Moscow.pm] Захотелось мне "хуков" после вызова fork. | > Кому: Victor Efimov Копия: > > Один раз для первого варианта, да и для второго тоже. Добавляем в модуль > например sub AFTER_FORK_OBJ{ } и как итог эта функция будет автоматически > вызываться в чилде после форка, для объектов данного типа > > Отправлено с Mi Phone > 27 янв. 2016 г. 0:58 | От: Victor Efimov | Сообщение: > > так "кажный раз" когда они делают if $pid eq $$ им нужно заменить на > "каждый раз" добавлять коллбэк > > 27 января 2016 г., 0:55 пользователь evgeniy написал: > > И так каждый раз? А так возможно будет из коробки, с самыми основными > модулями. > > > Отправлено с Mi Phone > 27 янв. 2016 г. 0:49 | От: Victor Efimov | Сообщение: > > А классический подход - запомнить pid, а потом его сверять - не > устраивает? > > 27 января 2016 г., 0:44 пользователь evgeniy написал: > > Надеюсь на то, что авторы модулей типо DBI будут реализовывать свои > reconnect_after_fork , для того, что бы лишний раз не заморачиваться по > поводу открытых коннектов. Как то так:) > > > Отправлено с Mi Phone > 27 янв. 2016 г. 0:26 | От: Victor Efimov | Сообщение: > > А зачем? > > 27 января 2016 г., 0:18 пользователь Evgeniy Vansevich > написал: > > Приветствую всех! Буквально несколько часов назад захотелось иметь нечто, > называемое child_callback. > А именно: мы форкаемся, и после форка в чилдах автоматом вызывается некая > функция, которая делает всю грязную работу за нас. > Быстрый поиск сказал, что ничего похожего нет, и как итог сделал сам. > Сделал 2 версии, первая версия после форка проходится по > арене(Devel::Gladiator) и ищет функции AFTER_FORK(для пакетов) и > AFTER_FORK_OBJ (для объектов). Которые потом и вызываются. > И вторая версия, которая хранит в себе "колбэки" которые нужно вызвать > после > форка, колбэки из модулей сами напихиваем из модулей. > > Первая версия: https://gist.github.com/kadavr/e46fa7380b610bbf095e > Вторая версия: https://gist.github.com/kadavr/dbed30507eceb3509b22 > > Сразу вопросы: Какая реализация вам больше нравится? и нужен ли такой > модуль > на cpan?. > > И моё мнение по поводу этих модулей: > Плюсы первой версии: > > Простой интерфейс - определяем в своём модуле две функции AFTER_FORK и > AFTER_FORK_OBJ, в зависимости от ситуации и остальное зависит уже от > того, > кто использует модуль, - загрузил он его или нет. > Однозначно живые объекты, и мы никак не влияем на время жизни объекта(Об > этом ниже). > > Минусы: > > Скорость работы зависит от размера арены(можно ускорить перенеся всю > логику > в xs). > > Плюсы второй версии: > > Элементарная pure perl реализация. > Скорость работы зависит от кол-ва колбэков.(Их явно меньше, чем sv в > арене). > > Минусы > > Так как мы используем колбэки, то всё что мы захватим то будет жить ровно > до > момента выхода. > Или можно взять weaken и каждый раз проверять "валидность" ссылки. > > Спасибо. > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > С уважением, > Мышкин Алексей. > > ,-- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > > -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org > > -- С уважением, Мышкин Алексей. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From evgeniy на just4i.ru Wed Jan 27 00:54:40 2016 From: evgeniy на just4i.ru (Evgeniy Vansevich) Date: Wed, 27 Jan 2016 11:54:40 +0300 Subject: [Moscow.pm] =?koi8-r?b?+sHIz9TFzM/T2CDNzsUgIsjVy8/XIiDQz9PMxSDX?= =?koi8-r?b?2drP18EgZm9yay4=?= In-Reply-To: References: <1648921453883204@web13o.yandex.ru> Message-ID: <1993041453884880@web17j.yandex.ru> CODE? :) 27.01.2016, 11:45, "Алексей Мышкин" : > Симпатичен простотой. > Про время жизни помнить - это чтобы не вызвать коллбэк из "отжившего" объекта? > А если на такой коллбэк ref вызвать - что получим? > > 27 января 2016 г., 11:26 пользователь Evgeniy Vansevich написал: >> А чем? Просто ведь тогда нам придётся каждый раз думать о времени жизни объекта. >> >> 27.01.2016, 11:22, "Алексей Мышкин" : >>>  Мне второй вариант симпатечней. >>> >>>  27 января 2016 г., 1:22 пользователь evgeniy написал: >>>>  Отправлено с Mi Phone >>>>  ---------- Перенаправленное сообщение ---------- >>>>  От: evgeniy | >>>>  Дата: 27 янв. 2016 г. 1:15 | >>>>  Тема: Re: [Moscow.pm] Захотелось мне "хуков" после вызова fork. | >>>>  Кому: Victor Efimov Копия: >>>> >>>>>  Один раз для первого варианта, да и для второго тоже. Добавляем в модуль например sub AFTER_FORK_OBJ{ } и как итог эта функция будет автоматически вызываться в чилде после форка, для объектов данного типа >>>>> >>>>>  Отправлено с Mi Phone >>>>>  27 янв. 2016 г. 0:58 | От: Victor Efimov | Сообщение: >>>>> >>>>>>  так "кажный раз" когда они делают if $pid eq $$ им нужно заменить на >>>>>>  "каждый раз" добавлять коллбэк >>>>>> >>>>>>  27 января 2016 г., 0:55 пользователь evgeniy написал: >>>>>>>  И так каждый раз? А так возможно будет из коробки, с самыми основными >>>>>>>  модулями. >>>>>>> >>>>>>>  Отправлено с Mi Phone >>>>>>>  27 янв. 2016 г. 0:49 | От: Victor Efimov | Сообщение: >>>>>>> >>>>>>>  А классический подход - запомнить pid, а потом его сверять - не устраивает? >>>>>>> >>>>>>>  27 января 2016 г., 0:44 пользователь evgeniy написал: >>>>>>>>  Надеюсь на то, что авторы модулей типо DBI будут реализовывать свои >>>>>>>>  reconnect_after_fork , для того, что бы лишний раз не заморачиваться по >>>>>>>>  поводу открытых коннектов. Как то так:) >>>>>>>> >>>>>>>>  Отправлено с Mi Phone >>>>>>>>  27 янв. 2016 г. 0:26 | От: Victor Efimov | Сообщение: >>>>>>>> >>>>>>>>  А зачем? >>>>>>>> >>>>>>>>  27 января 2016 г., 0:18 пользователь Evgeniy Vansevich >>>>>>>>   написал: >>>>>>>>>  Приветствую всех! Буквально несколько часов назад захотелось иметь нечто, >>>>>>>>>  называемое child_callback. >>>>>>>>>  А именно: мы форкаемся, и после форка в чилдах автоматом вызывается некая >>>>>>>>>  функция, которая делает всю грязную работу за нас. >>>>>>>>>  Быстрый поиск сказал, что ничего похожего нет, и как итог сделал сам. >>>>>>>>>  Сделал 2 версии, первая версия после форка проходится по >>>>>>>>>  арене(Devel::Gladiator) и ищет функции AFTER_FORK(для пакетов) и >>>>>>>>>  AFTER_FORK_OBJ (для объектов). Которые потом и вызываются. >>>>>>>>>  И вторая версия, которая хранит в себе "колбэки" которые нужно вызвать >>>>>>>>>  после >>>>>>>>>  форка, колбэки из модулей сами напихиваем из модулей. >>>>>>>>> >>>>>>>>>  Первая версия: https://gist.github.com/kadavr/e46fa7380b610bbf095e >>>>>>>>>  Вторая версия: https://gist.github.com/kadavr/dbed30507eceb3509b22 >>>>>>>>> >>>>>>>>>  Сразу вопросы: Какая реализация вам больше нравится? и нужен ли такой >>>>>>>>>  модуль >>>>>>>>>  на cpan?. >>>>>>>>> >>>>>>>>>  И моё мнение по поводу этих модулей: >>>>>>>>>  Плюсы первой версии: >>>>>>>>> >>>>>>>>>  Простой интерфейс - определяем в своём модуле две функции AFTER_FORK и >>>>>>>>>  AFTER_FORK_OBJ, в зависимости от ситуации и остальное зависит уже от >>>>>>>>>  того, >>>>>>>>>  кто использует модуль, - загрузил он его или нет. >>>>>>>>>  Однозначно живые объекты, и мы никак не влияем на время жизни объекта(Об >>>>>>>>>  этом ниже). >>>>>>>>> >>>>>>>>>  Минусы: >>>>>>>>> >>>>>>>>>  Скорость работы зависит от размера арены(можно ускорить перенеся всю >>>>>>>>>  логику >>>>>>>>>  в xs). >>>>>>>>> >>>>>>>>>  Плюсы второй версии: >>>>>>>>> >>>>>>>>>  Элементарная pure perl реализация. >>>>>>>>>  Скорость работы зависит от кол-ва колбэков.(Их явно меньше, чем sv в >>>>>>>>>  арене). >>>>>>>>> >>>>>>>>>  Минусы >>>>>>>>> >>>>>>>>>  Так как мы используем колбэки, то всё что мы захватим то будет жить ровно >>>>>>>>>  до >>>>>>>>>  момента выхода. >>>>>>>>>  Или можно взять weaken и каждый раз проверять "валидность" ссылки. >>>>>>>>> >>>>>>>>>  Спасибо. >>>>>>>>> >>>>>>>>>  -- >>>>>>>>>  Moscow.pm mailing list >>>>>>>>>  moscow-pm на pm.org | http://moscow.pm.org >>>>>>>>  -- >>>>>>>>  Moscow.pm mailing list >>>>>>>>  moscow-pm на pm.org | http://moscow.pm.org >>>>>>>> >>>>>>>>  -- >>>>>>>>  Moscow.pm mailing list >>>>>>>>  moscow-pm на pm.org | http://moscow.pm.org >>>>>>>  -- >>>>>>>  Moscow.pm mailing list >>>>>>>  moscow-pm на pm.org | http://moscow.pm.org >>>>>>> >>>>>>>  -- >>>>>>>  Moscow.pm mailing list >>>>>>>  moscow-pm на pm.org | http://moscow.pm.org >>>>>>  -- >>>>>>  Moscow.pm mailing list >>>>>>  moscow-pm на pm.org | http://moscow.pm.org >>>> >>>>  -- >>>>  Moscow.pm mailing list >>>>  moscow-pm на pm.org | http://moscow.pm.org >>> >>>  -- >>>  С уважением, >>>  Мышкин Алексей. >>> >>>  ,-- >>>  Moscow.pm mailing list >>>  moscow-pm на pm.org | http://moscow.pm.org >> >> -- >> Moscow.pm mailing list >> moscow-pm на pm.org | http://moscow.pm.org > > -- > С уважением, > Мышкин Алексей. > > ,-- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org From dmitry на eremeev.ru Thu Jan 28 03:02:11 2016 From: dmitry на eremeev.ru (Dmitry Eremeev) Date: Thu, 28 Jan 2016 14:02:11 +0300 Subject: [Moscow.pm] =?utf-8?b?INCt0LrQstCw0LnRgNC40L3QsyDQkNC70YzRhNGL?= =?utf-8?q?_=D0=B8_Perl?= In-Reply-To: References: Message-ID: Коллеги, привет! Есть у кого опыт-примеры по интеграции приема карт на Perl в русской “Альфе”? Там есть пример на PHP, но он какой-то фееричный. — Yours Dmitry Eremeev ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From max на tyulin.ru Thu Jan 28 03:19:58 2016 From: max на tyulin.ru (Max Tyulin) Date: Thu, 28 Jan 2016 14:19:58 +0300 Subject: [Moscow.pm] =?koi8-r?b?/MvXwcrSyc7HIOHM2MbZIMkgUGVybA==?= In-Reply-To: References: Message-ID: <4043841453979998@web12g.yandex.ru> Вложение в формате HTML было извлечено… URL: From dmitry на eremeev.ru Thu Jan 28 03:25:32 2016 From: dmitry на eremeev.ru (Dmitry Eremeev) Date: Thu, 28 Jan 2016 14:25:32 +0300 Subject: [Moscow.pm] =?utf-8?b?0K3QutCy0LDQudGA0LjQvdCzINCQ0LvRjNGE0Ysg?= =?utf-8?q?=D0=B8_Perl?= In-Reply-To: <4043841453979998@web12g.yandex.ru> References: <4043841453979998@web12g.yandex.ru> Message-ID: Макс,  а есть готовый кусок “форма с суммой и ОрдерИд” + “отдающий ОрдерИд” скрипт и скрипт проверки? Если да - с меня причитается. — Yours Dmitry Eremeev On 28 January 2016 at 14:22:04, Max Tyulin (max на tyulin.ru) wrote: Отлично работает с модулями REST::Client и JSON. Там предварительно нужно заказ регистрировать в системе и в случае успешной регистрации клиента перенаправлять на страницу оплаты.   28.01.2016, 14:02, "Dmitry Eremeev" : Коллеги, привет!   Есть у кого опыт-примеры по интеграции приема карт на Perl в русской “Альфе”?   Там есть пример на PHP, но он какой-то фееричный.     — Yours Dmitry Eremeev ,-- Moscow.pm mailing list moscow-pm на pm.org | http://moscow.pm.org     Best Regards, Max Tyulin.   -- Moscow.pm mailing list moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From max на tyulin.ru Thu Jan 28 03:58:42 2016 From: max на tyulin.ru (Max Tyulin) Date: Thu, 28 Jan 2016 14:58:42 +0300 Subject: [Moscow.pm] =?koi8-r?b?/MvXwcrSyc7HIOHM2MbZIMkgUGVybA==?= In-Reply-To: References: <4043841453979998@web12g.yandex.ru> Message-ID: <4091711453982322@web20m.yandex.ru> Вложение в формате HTML было извлечено… URL: From max на tyulin.ru Thu Jan 28 05:46:05 2016 From: max на tyulin.ru (Max Tyulin) Date: Thu, 28 Jan 2016 16:46:05 +0300 Subject: [Moscow.pm] =?koi8-r?b?/MvXwcrSyc7HIOHM2MbZIMkgUGVybA==?= In-Reply-To: References: <4043841453979998@web12g.yandex.ru> Message-ID: <4813001453988765@web20m.yandex.ru> Вложение в формате HTML было извлечено… URL: From dmitry на eremeev.ru Thu Jan 28 05:47:06 2016 From: dmitry на eremeev.ru (Dmitry Eremeev) Date: Thu, 28 Jan 2016 16:47:06 +0300 Subject: [Moscow.pm] =?utf-8?b?0K3QutCy0LDQudGA0LjQvdCzINCQ0LvRjNGE0Ysg?= =?utf-8?q?=D0=B8_Perl?= In-Reply-To: <4813001453988765@web20m.yandex.ru> References: <4043841453979998@web12g.yandex.ru> <4813001453988765@web20m.yandex.ru> Message-ID: Спасибо! Ща в личку напишу про отправку благодарностей! — Yours Dmitry Eremeev On 28 January 2016 at 16:46:28, Max Tyulin (max на tyulin.ru) wrote: Вот  модуль, который регистрирует заказ и получает информацию по заказу. Я немного лишнего вырезал отсюда, поэтому сходу возможно не заработает, нужно проверять.   28.01.2016, 14:25, "Dmitry Eremeev" : Макс,  а есть готовый кусок “форма с суммой и ОрдерИд” + “отдающий ОрдерИд” скрипт и скрипт проверки?   Если да - с меня причитается.   — Yours Dmitry Eremeev On 28 January 2016 at 14:22:04, Max Tyulin (max на tyulin.ru) wrote:   Отлично работает с модулями REST::Client и JSON. Там предварительно нужно заказ регистрировать в системе и в случае успешной регистрации клиента перенаправлять на страницу оплаты.   28.01.2016, 14:02, "Dmitry Eremeev" : Коллеги, привет!   Есть у кого опыт-примеры по интеграции приема карт на Perl в русской “Альфе”?   Там есть пример на PHP, но он какой-то фееричный.     — Yours Dmitry Eremeev ,-- Moscow.pm mailing list moscow-pm на pm.org | http://moscow.pm.org     Best Regards, Max Tyulin.   -- Moscow.pm mailing list moscow-pm на pm.org | http://moscow.pm.org ,-- Moscow.pm mailing list moscow-pm на pm.org | http://moscow.pm.org     Best Regards, Max Tyulin.   -- Moscow.pm mailing list moscow-pm на pm.org | http://moscow.pm.org ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From dmitry на karasik.eu.org Fri Jan 29 12:10:29 2016 From: dmitry на karasik.eu.org (Dmitry Karasik) Date: Fri, 29 Jan 2016 21:10:29 +0100 Subject: [Moscow.pm] =?koi8-r?b?+sHIz9TFzM/T2CDNzsUgIsjVy8/XIiDQz9PMxSDX?= =?koi8-r?b?2drP18EgZm9yay4=?= In-Reply-To: <378011453843127@web19h.yandex.ru> References: <378011453843127@web19h.yandex.ru> Message-ID: <20160129201029.GA79572@karasik2> Я не совсем понимаю зачем это может быть нужно на уровне модуля, но на уровне объекта есть аналог CLONE для тредов. Для форков ... ну может тоже и пригодится в своем роде. http://perldoc.perl.org/perlmod.html#Making-your-module-threadsafe /dk On Wed, Jan 27, 2016 at 12:18:47AM +0300, Evgeniy Vansevich wrote: >
Приветствую всех! Буквально несколько часов назад захотелось иметь нечто, называемое child_callback.
А именно: мы форкаемся, и после форка в чилдах автоматом вызывается некая функция, которая делает всю грязную работу за нас.
Быстрый поиск сказал, что ничего похожего нет, и как итог сделал сам.
Сделал 2 версии, первая версия после форка проходится по арене(Devel::Gladiator) и ищет функции AFTER_FORK(для пакетов) и AFTER_FORK_OBJ (для объектов). Которые потом и вызываются.
И вторая версия, которая хранит в себе "колбэки" которые нужно вызвать после форка, колбэки из модулей сами напихиваем из модулей.
 
 
Сразу вопросы: Какая реализация вам больше нравится? и нужен ли такой модуль на cpan?.
 
И моё мнение по поводу этих модулей:
Плюсы первой версии:
  1. Простой интерфейс - определяем в своём модуле две функции AFTER_FORK и AFTER_FORK_OBJ, в зависимости от ситуации и остальное зависит уже от того, кто использует модуль, - загрузил он его или нет.
  2. Однозначно живые объекты, и мы никак не влияем на время жизни объекта(Об этом ниже).
Минусы:
  1. Скорость работы зависит от размера арены(можно ускорить перенеся всю логику в xs).
Плюсы второй версии:
  1. Элементарная pure perl реализация.
  2. Скорость работы зависит от кол-ва колбэков.(Их явно меньше, чем sv в арене).
Минусы
  1. Так как мы используем колбэки, то всё что мы захватим то будет жить ровно до момента выхода.
  2. Или можно взять weaken и каждый раз проверять "валидность" ссылки.
Спасибо.
 
> -- > Moscow.pm mailing list > moscow-pm на pm.org | http://moscow.pm.org -- Sincerely, Dmitry Karasik From evgeniy на just4i.ru Sat Jan 30 01:25:48 2016 From: evgeniy на just4i.ru (evgeniy) Date: Sat, 30 Jan 2016 12:25:48 +0300 Subject: [Moscow.pm] =?utf-8?b?0JfQsNGF0L7RgtC10LvQvtGB0Ywg0LzQvdC1ICI=?= =?utf-8?b?0YXRg9C60L7QsiIg0L/QvtGB0LvQtSDQstGL0LfQvtCy0LAgZm9yay4=?= References: <20160129201029.GA79572@karasik2> Message-ID: <6sn5n067u14n9ajr72e7athf.1454145948792@email.android.com> Вложение в формате HTML было извлечено… URL: