gpt4 book ai didi

perl - 如何反转数组引用并将其存储在 Perl 中的另一个数组引用中?

转载 作者:行者123 更新时间:2023-12-02 05:22:45 25 4
gpt4 key购买 nike

我有这个例子:

my $numbers = [ 1, 2, 3, 4, 5, 6 ];
my $newarray = [ reverse @$numbers ];

此示例包含一些合成代码,使 $numbers arrayref 适合 reverse 函数。我想删除该代码并做更多类似这样的事情:

my $newarray = reverse $numbers;

我知道这行不通,它返回:

)8936f22x0(YARRA

有没有更好的方法在 Perl 中反转 arrayref 而不更改第一行

更新:

my $mails = [ reverse @{$mail_api->GetLogSendMail({ customer_id => $id })} ];

想法是让上面的代码行变得更好。

最佳答案

如果您可以使用数组而不是 arrayref,那么试试这个:

my @newarray = reverse @$numbers;

代码 my $newarray = reverse $numbers 没有工作,因为 reversescalar 上下文中调用,这使得它返回一个字符串字符顺序相反。来自 reverse manual :

In scalar context, concatenates the elements of LIST and returns a string value with all characters in the opposite order.

如果你在上面的某个地方声明了 $newarray 变量,你可以用下面的方式来写它:

## declare $newarray somewhere else
@$newarray = reverse @$numbers;

更新

也许您想创建自己的函数:

sub reverse_by_ref {
return [ reverse @{$_[0]} ];
}

关于perl - 如何反转数组引用并将其存储在 Perl 中的另一个数组引用中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2006523/

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