[Moscow.pm] Странности и неожиданности Perl

Ivan B. Serezhkin ivan на serezhkin.com
Чт Фев 28 12:12:25 PST 2008


Denis Evdokimov wrote:
>>  Очень многие используют return if/unless для выхода и вот к чему это может привести. Особенно следует учитывать при использовании чужих библиотек :)
>>     
>
> Да, пример наглядный.
> Мы же ничего не возвращаем...
> Удивительно то, что return не возвращает undef;
> хотя в man чётко сказано, что в Perl АБСОЛЮТНО любая функция
> возвращает какое-нибудь значение
>   
И в данном случае это пустой массив возвращаемых значений, который в 
списковом контексте превращается в тыкву.
> use Data::Dumper;
>
> # Крах Всему
> use constant aa;
> #sub aa {}
> #sub aa { return }
> #sub aa { return if 1}
>
> # Всё ОК
> #sub aa { return undef if 1}
> #sub aa { return 1 if 1}
>
> my $test = {
>    a => aa,
>    b => 1,
> };
>
> print Dumper($test);
> ______________________________________________________________________
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> http://mail.pm.org/mailman/listinfo/moscow-pm


-- 
Ivan B. Serezhkin



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