gpt4 book ai didi

perl - 使用数组名称和对数组的引用来反转数组

转载 作者:行者123 更新时间:2023-12-01 10:58:35 25 4
gpt4 key购买 nike

我已经声明了一个数组,并像这样引用了该数组:-

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 的文档,以检查是否在任何地方提到了这种行为,但我没有吃任何东西。谁能解释这里发生了什么?

最佳答案

reverse @digits, reverse @$digits, "\n"

表示

reverse(@digits, reverse(@$digits, "\n"))

你想要

reverse(@digits), reverse(@$digits), "\n"

或者只是

reverse(@$digits, @digits), "\n"

关于perl - 使用数组名称和对数组的引用来反转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13153608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com