Я пытаюсь нажать/unshift 1D-массив в 2D-массиве, который является подматрицей 3D-массива. Вы можете проверить пример кода в http://codepad.org/5s8Og64k, чтобы сделать это более ясным, я копирую его и здесь:Perl: Нажатие 1d массива в 3d-поддиапазон
use Data::Dumper;
# @arr_3d ;
$arr_3d[0][0][0] = 1;
$arr_3d[0][1][0] = 2;
$arr_3d[0][0][1] = 4;
$arr_3d[0][1][1] = 3;
# @arr_1d ;
$arr_1d[1] = "new1";
$arr_1d[0] = "new0";
print Dumper(\@arr_3d);
unshift @{$arr_3d[0]},\@arr_1d;
print Dumper(\@arr_3d);
Другими словами, если мы определяем размеры хуг 3D-массива и рассмотрим х постоянная, то мы получим «2D» массив. Я хочу подтолкнуть массив 1D в этот «поддиапазон» 2D исходного массива 3D.
Пример кода на самом деле, что НО когда я пытаюсь применить его к моему основному сценарию, самосвал отвалов «$ VAR1 -> [0] [0]» на месте всех ранее pushed- в данных, и только сбрасывает данные из последнего вдавленного массива 1D.
Любая идея, что может быть причиной этого или более эффективного способа сделать толкание, которое я описываю?
Дополнительно: Фактическая структура данных создается в цикле, что-то вроде:
unshift @{$arr_3d[$index]},\@arr_1d;
print @arr_1d; # This prints successfully the 1D array
где "@ arr_1d" создается быть просто присваивающих отдельных элементов:
$arr_1d[0]='a'; $arr_1d[1]='b'; # etc, etc..
Спасибо за ваше время, Giorgos
Ну, как вы строите фактическая структура данных? Есть ли у него петли? – amon
Я добавил информацию для создания фактической структуры данных в конце сообщения. Спасибо за ваш интерес. – user2405602