私は2次元の配列を持っています。 I印刷/時、私は、次の取得、このダンプ2次元配列を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]
];
アレイの第2行であるべきである配列の最初の行であるべきであるI次のコードでこれを印刷してください:
for (my $j= 0; $j < $rows; $j++)
{
for (my $k= 0; $k < @a1; $k++)
{
print "Row:$j Col:$k = $matrix[$j][$k]\n";
}
}
私は以下のou 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はどのように定義されていますか? –
だから私は掘り起こした。私の行列は、配列参照をその配列にプッシュすることによって形成されています。配列がループ内で順番にプッシュされると、データは複製されます。しかし、@matrix =(\ @ array1、\ @ array2)を宣言すると、すべてが問題ありません。それがなぜあるのか知っていますか? –
あなたのループを教えてください。 – dave4420