Просто нужно чётко знать, что должна возвращать функция.
В данном случае, функция "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
