У меня есть двумерный массив. При печати/Dump это я получаю следующееКак я могу напечатать двумерный массив в Perl?
Моего 2 тусклый массив:
push (@matrix, \@a1Comparea2);
push (@matrix, \@a3Comparea4);
a1Comparea2 должен быть первой строкой массива a3Comparea4 должен быть вторым рядом массива
$VAR1 = [
[
'1 6',
'2 7',
'3 8',
'4 9',
'5 10'
],
$VAR1->[0],
$VAR1->[0],
$VAR1->[0],
$VAR1->[0],
[
'7 12',
'8 13',
'9 14',
'10 15',
'11 16'
],
$VAR1->[5],
$VAR1->[5],
$VAR1->[5],
$VAR1->[5]
];
Когда я постарайтесь распечатать это со следующим кодом:
for (my $j= 0; $j < $rows; $j++)
{
for (my $k= 0; $k < @a1; $k++)
{
print "Row:$j Col:$k = $matrix[$j][$k]\n";
}
}
Я получаю следующие документы tput:
Row:0 Col:0 = 1 6
Row:0 Col:1 = 2 7
Row:0 Col:2 = 3 8
Row:0 Col:3 = 4 9
Row:0 Col:4 = 5 10
Row:1 Col:0 = 1 6
Row:1 Col:1 = 2 7
Row:1 Col:2 = 3 8
Row:1 Col:3 = 4 9
Row:1 Col:4 = 5 10
Как вы можете видеть, данные дублируются.
Элементы в матрице, которые читают «$ VAR -> [0]» и $ VAR -> [5], - это способ Data: Dumper сказать, что в вашей структуре данных есть несколько копий одной и той же вещи. Если вы разместите более инициализирующий код, это может помочь. Как определяется a1Comparea2? –
, поэтому я кое-что копал. Моя матрица формируется путем ссылки на pusshing array в нее. Данные дублируются, если массивы последовательно повторяются в цикле. но если я объявляю @matrix = (\ @ array1, \ @ array2), тогда все в порядке. знаете, почему это может быть? – 2009-07-11 06:16:28
Покажите нам свою петлю. – dave4420