2 차원 배열이 있습니다. 내가 인쇄/때 나는 다음과 같은 얻을이 덤프어떻게 Perl에서 2 차원 배열을 인쇄 할 수 있습니까?
내 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]
];
배열의 두 번째 행되어야한다 배열의 첫 번째 행에 있어야합니다 I 다음 코드로 인쇄하십시오.
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하여 형성되고있다. 어레이가 루프에서 순차적으로 푸시되면 데이터가 복제됩니다. 하지만 @matrix = (\ @ array1, \ @ array2)라고 선언하면 모든 것이 잘됩니다. 그게 뭔지 알아? –
루프를 보여주십시오. – dave4420