配列と、その配列への参照を次のように宣言しました。
my @array = (1, 2, 3, 4);
my $aref = \@array;
今、配列名と参照名を使用して、配列を逆にしようとしています。
print reverse @array, "\n";
print reverse @{$aref}, "\n";
これは正常に機能しており、どちらの場合も逆の配列を出力しています: -
4321
4321
ただし、同じ行に逆を印刷しようとすると、奇妙な結果が得られます: -
print reverse @array, reverse @{$aref}, "\n";
今、私はこの出力を得ました: -
1234
4321
そして、間に改行を追加すると: -
print reverse @array, "\n", reverse @{$aref}, "\n";
私はこの出力を得ました: -
1234
4321
したがって、ご覧のとおり、2 つの問題があります。
- 1つ目、名前を使用しても配列が逆になりません
- 第 2 に、2 つの逆配列の間に余分な改行が出力されます。
この動作が理解できません。なぜこれが起こっているのでしょうか。また、関数のドキュメントreverse
を調べて、この動作について言及されているかどうかを確認しましたが、食事はしませんでした。ここで何が起こっているのか誰か説明できますか?