[Moscow.pm] Switch vs given

vividsnow vividsnow на gmail.com
Пн Апр 25 11:19:48 PDT 2016


в хэше может быть и "пустой" ключ: my %h = ('',1); say $h{''}
или не в этом проблема?

On 04/23/2016 02:19 AM, Nikolay Mishin wrote:
> Хорошая идея, но здесь еще проблема разделить пустой ключ и undef,
> у меня для каждого из них разная обработка  ( например, это может быть при разборе роутинга)
> 
> 22.04.2016, 18:57, "vividsnow" <vividsnow на gmail.com>:
>> возможно подойдет dispatch hash:
>>
>> my %h = (
>>      type1 => sub { ... },
>>      type2 => sub { ... },
>>      ...
>> );
>> if (my $f = $h{$key}) { $f->() }
>> else { ... } # default
>>
>> On 04/21/2016 03:10 PM, Nikolay Mishin wrote:
>>
>>>  Привет Moscow-PM
>>>
>>>  может я повторяюсь, но что делать
>>>
>>>  на
>>>
>>>  use Switch;
>>>  perlcritic жалуется
>>>  Found use of Switch. This module is deprecated by the Perl 5 Porters (Find an alternative module) [Modules::ProhibitEvilModules]
>>>
>>>  а на
>>>
>>>  use v5.10.1;
>>>  no warnings 'experimental::smartmatch';
>>>  в версиях perl < 5.17 (travis тестирует все с 5.10 вот пример вывода https://travis-ci.org/mishin/Ftree-cpan/jobs/124726293)
>>>  пишет
>>>  Unknown warnings category 'experimental::smartmatch'
>>>
>>>  и вот эта строка
>>>  no if $] >= 5.017011, warnings => 'experimental::smartmatch';
>>>  (http://blogs.perl.org/users/mike_b/2013/06/a-little-nicer-way-to-use-smartmatch-on-perl-518.html )
>>>  http://www.effectiveperlprogramming.com/2013/06/experimental-features-now-warn-reaching-back-to-v5-10/
>>>
>>>  тоже не помогает
>>>
>>>  так как надо писать? if else?
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
> 


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