Добрый день. Пусть есть массив @a из 50 элементов, от 1 до 50. Я хочу разбить его на 5 частей и занести в другой массив @res, что первый элемент содержал массив 1..10, второй 11..20 и тд. Итак: @a = (1..50); @res = (); for ($i = 0; $i < 5; $i++) { $begin = 10 * $i; $end = 10 * ($i + 1) - 1; @a_slice = @a[$begin..$end]; # копируем срез во временный массив push @res, \@a_slice; # и в новом массиве делаем на него ссылку } печатаем аолучившийся массив на экран: for ($i = 0; $i < 5; $i++) { for ($j = 0; $j < 10; $j++) { printf " %2d", ${$res[$i]}[$j]; } print "\n"; } 41 42 43 44 45 46 47 48 49 50 41 42 43 44 45 46 47 48 49 50 41 42 43 44 45 46 47 48 49 50 41 42 43 44 45 46 47 48 49 50 41 42 43 44 45 46 47 48 49 50 ну понятно. В окончательном массиве мы имеем пять ссылок на один и тот же массив, который 5 раз обновлялся, и в последний раз туда записались последние 10 из 50 элементов. Ладно. Открываю perlref(tut) и читаю, что ссылки в Perl - это как жесткие ссылки в Unix. Ага. Это в Unix означает, что у файла просто 2 имени - меняем содержимое одного, меняется, естественно, и у другого - оба имени ссылаются на одну область памяти. Но если мы удаляем одно из имен, то содержимое файла сохраняется - до тех пор, пока мы не удали все имена. Поэтому я решил после того, как занес в новый массив ссылку на @a_slice, сделать undef @a_slice; Но в итоге и ссылки в @res стали указывать на пустое место :( То есть ссылки в Perl действуют несколько по-другому... Как мне быть с моей задачей? Каждый раз в цикле называть временные переменные по-разному? Спасибо всем, кто поможет!


Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от cvasil

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от cvasil

Ответ на:
комментарий
от murla

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от murla

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от murla

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от murla

Ответ на:
комментарий
от vilfred

Ответ на:
комментарий
от murla

Ответ на:
комментарий
от vilfred

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [Perl] Метапрограмирование и ссылки на функции (2012)
- Форум Ссылки (2012)
- Форум Ссылки (2014)
- Форум Ссылки. (2015)
- Форум ссылка (2008)
- Форум ссылка # (2007)
- Форум ссылка (2004)
- Форум Ссылки (1999)
- Форум ссылка (2005)
- Форум [perl] strawberry perl (2009)