我已经声明了一个数组,以及对该数组的引用,如下所示:-
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
因此,您可以看到两个问题:-
- 1st,数组没有因为使用名称而反转
- 第二,在两个反向数组之间打印了一个额外的换行符。
我无法理解这种行为,为什么会发生这种情况。我还浏览了该函数的文档reverse
以检查是否在任何地方提到了这种行为,但我没有吃任何东西。谁能解释这里发生了什么?