これは愚かな疑問かもしれません...次のコードはそれぞれ@arrayref
と@arraycont
の内容を出力します。それらの値とそれらの値の割り当て方法の違いに注意してください。私は匿名配列が何をしているのか知っていますが、なぜ違いがあるのか誰でも説明できますか?Perl:配列参照と匿名配列の比較
ありがとうございました。
@arrayref =();
@array = qw(1 2 3 4);
$arrayref[0] = \@array;
@array = qw(5 6 7 8);
$arrayref[1] = \@array;
print join "\t", @{$arrayref[0]}, "\n";
print join "\t", @{$arrayref[1]}, "\n";
@arraycont =();
@array = qw(1 2 3 4);
$arraycont[0] = [@array];
@array = qw(5 6 7 8);
$arraycont[1] = [@array];
print join "\t", @{$arraycont[0]}, "\n";
print join "\t", @{$arraycont[1]}, "\n";
出力
5 6 7 8
5 6 7 8
1 2 3 4
5 6 7 8
*浅い*コピーでコピーの時に持っていたものを手に入れます'参照が含まれていれば' [@array] 'には同じ参照が含まれます。深い/浅い相違はこの場合は当てはまりませんが、とにかく言及する価値があると思いました。 –
ありがとうございました。感謝! – yamen