Friday, March 2nd, 2007 02:14 pm
офигенно понятный.
Вот попробуйте, не глядя в комменты и документацию, определить, чтО делает эта конструкция
push(@foo,[@bar]);
Способа написать это понятнее я не нашел.
Friday, March 2nd, 2007 02:27 pm (UTC)
ссылку на анонимный массив положить в @foo.
Friday, March 2nd, 2007 02:31 pm (UTC)
А чего тут думать, в конец массива @foo добавляется ссылка на анонимный массив, элементы которого совпадают с элементами массива @bar
Friday, March 2nd, 2007 02:32 pm (UTC)
> элементы которого совпадают с элементами массива @bar

скажу более по-русски - в анонимом массиве копия @bar на момент операции.
Friday, March 2nd, 2007 03:30 pm (UTC)
+1
Friday, March 2nd, 2007 04:27 pm (UTC)
Ссылку на массив оно в массив пихает.
Remedies: пользоваться ссылками сразу.
типа, push (@$foo, $bar), where $bar = [1, 2, 3];

Либо, насколько помню, push (@foo, \@bar);

Но вообще, в перле я пришёл года два назад к идее использовать ТОЛЬКО ссылки, и $a->[]/$a->{}

Не нужно думать, и скобки очень хорошо различимы визуально.
Friday, March 2nd, 2007 04:34 pm (UTC)
\@bar делает немножко не то, что мне надо. Так у меня весь @foo окажется набитым ссылками на один и тот же @bar. А мне надо на его копии в разные моменты времени, я в него данные снаружи много раз считываю
Monday, March 5th, 2007 03:07 am (UTC)
В этом случае лучше сразу создавать анонимный массив, читать в него и присваивать потом. Меньше копирований.
Wednesday, March 7th, 2007 08:00 am (UTC)
Не надо пытаться перехитрить Perl и JavaVM... Они и так неплохо оптимизируют... В частности, в Perl не стоит избегать передач параметров в функции и обратно через списки.

А передача ссылок на хэши/списки и потом их произвольная и несогласованная их модификация в функциях - это прямой путь программистов на C создать глючную и трапающуюся в произвольные моменты программу.
Friday, March 2nd, 2007 06:58 pm (UTC)
Не ссылку, а копию, и тем-то от \@bar и отличается.
Monday, March 5th, 2007 03:10 am (UTC)
Да, протупил.
Friday, March 2nd, 2007 06:45 pm (UTC)
конструкция непонятна только тому, кто язык не знает ;>
Friday, March 2nd, 2007 07:41 pm (UTC)
Почему-то ассоциации вызвали в памяти асм пдп11. Я понимаю, что это другое и о другом...
Friday, March 2nd, 2007 08:11 pm (UTC)
Да, лаконичностью напоминает. Двойная косвенная адресация..
Friday, March 2nd, 2007 11:28 pm (UTC)
Саша, возвращайся. :)
Saturday, March 3rd, 2007 11:49 pm (UTC)
А что, вы уже изобрели какой-то более другой перл? ;)
Wednesday, March 7th, 2007 07:54 am (UTC)
Что здесь такого сложного? В конец @foo дописать элемент, представляющий ссылку на анонимный список, содержащий значения списка @bar.
Wednesday, March 7th, 2007 08:13 am (UTC)
(опоздал ;-) )
Thursday, March 8th, 2007 09:49 pm (UTC)
Саш, не кури больше. :-))))))))))))
Wednesday, April 11th, 2007 03:16 pm (UTC)
А в чём проблема? В @foo добавится ссылка на безымянный массив с содерждимым, скопированным из @bar.