Просто нужно чётко знать, что должна возвращать функция.
В данном случае, функция "aa" должна возвращать массив.
А если массив, то и класть его в хеш нужно правильно
perl -w -mstrict -MData::Dumper -e 'sub aa{return;} %a=(a=>[aa()],
b=>42); print(Dumper(\%a))'
или
perl -w -mstrict -MData::Dumper -e 'sub aa{return;} my@aa = aa();
%a=(a=>\@aa, b=>42); print(Dumper(\%a))'


18 мая 2011 г. 22:12 пользователь Denis Ibaev <[email protected]> написал:
> 18 мая 2011 г. 21:55 пользователь Иван Бессарабов <[email protected]> 
> написал:
>> return без параметров может потенциально вызвать проблемы:
>>
>> $ perl -w -mstrict -MData::Dumper -e 'sub aa{return;} %a=(a=>aa(),
>> b=>42); print(Dumper(\%a))'
>
> Это да, поэтому всегда надо прописывать значение по умолчанию: a =>
> aa() // undef
>
> --
> Денис Ибаев
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить