[Moscow.pm] (без темы)

Andrew Shitov andy на shitov.ru
Пт Май 17 03:57:05 PDT 2013


> if (
>     [ $loaded_user, $editable_user ] ~~ [
>             [ 'OWNER', 'ADMIN' ],                   # Create user for
> admin by owner
>             [ [ 'ADMIN', 'OWNER' ], 'USER' ]    # Create moderator for
> user by admin/owner
>     ]

Ого, это прикольно. Я только такое делал:

if ($remote_addr ~~ ['12.45.67.99', '59.44.11.33']) {...



2013/5/17 Dmitry L. <dim0xff на gmail.com>
>
> "cворачиваю" if-ы:
> if (
>     ($loaded_user eq 'OWNER' && $editable_user eq 'ADMIN')
>                                       # Create user for admin by owner
>     || ( ( $loaded_user eq 'ADMIN' || $loaded_user eq 'OWNER') &&
> $editable_user eq 'USER' )     # Create moderator for user by
> admin/owner
> ) {
>     $loaded_user->create($editable_user)
> }
>
> if (
>     [ $loaded_user, $editable_user ] ~~ [
>             [ 'OWNER', 'ADMIN' ],                   # Create user for
> admin by owner
>             [ [ 'ADMIN', 'OWNER' ], 'USER' ]    # Create moderator for
> user by admin/owner
>     ]
> ) {
>     $loaded_user->create($editable_user)
> }
>
> 2013/5/17 Andrew Shitov <andy на shitov.ru>:
> > А кто-нибудь еще использует ~~? Можете показать примеры?
> >
> > Мой любимый кейс, например, проверка аргументов командной строки: if
> > '--help' ~~ @ARGV.
> >
> >
> > 2013/5/6 Ivan Petrov <i.petro.77.00 на gmail.com>
> >>
> >>
> >> > http://pragmaticperl.com/issues/03/
> >> >
> >> > pragmaticperl-03-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-cpan-%D0%B7%D0%B0-%D0%B0%D0%BF%D1%80%D0%B5%D0%BB%D1%8C-2013%D0%B3..html
> >> >> группа возможностей switch, такие как оператор ~~, given и when
> >> > помечаются экспериментальными и их использование теперь даёт
> >> > соответствующее предупреждение.
> >>
> >> > чего это они так?
> >>
> >> > Из-за того, что таблица оператора ~~ содержит, если не ошибаюсь, 48
> >> > строк,
> >> > которые надо знать для правильного использования оператора с учетом всех
> >> > особенностей.
> >>
> >> > Две темы:
> >>
> >> > 1) Убрать совсем - больше проблем нежели пользы.
> >> > 2) Заменить на таблицу проще с ~5тью правилами.
> >>
> >> > given и when попали под раздачу так как попадают в одну корзину с ~~.
> >>
> >> > Лично я буду рад 2му решению. Ибо из-за дикой многообразности просто не
> >> > использую в коде.
> >>
> >> я ~~ юзаю для сравнения скаляров, могущих содержать undef
> >> а так же проверки входит ли скаляр в массив - удобно весьма.
> >>
> >> а вот given/when - наоборот перестал использовать с тех времен когда
> >> наткнулся на то что с ними не всегда точно die/croak номер строки
> >> указывает.
> >> хз может быть сейчас пофиксили
> >> --
> >> Moscow.pm mailing list
> >> moscow-pm на pm.org | http://moscow.pm.org
> >
> >
> >
> >
> > --
> > Andrew Shitov
> > ______________________________________________________________________
> > andy на shitov.ru | http://shitov.ru
> >
> > --
> > 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




--
Andrew Shitov
______________________________________________________________________
andy на shitov.ru | http://shitov.ru


Подробная информация о списке рассылки Moscow-pm