gpt4 book ai didi

perl - 为什么 pop/shift 不能与 perl 中的 map/grep 一起使用

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

我想在 mapgrep 操作之后获取第一个或最后一个元素在阵列上。将 shiftpop 运算符与 mapgrep 一起使用似乎不起作用。有什么建议么?如果我保存 map 的结果,它会起作用进入数组变量并在其上弹出,但我想在一行中完成。

:$ cat map.pl 
use strict;
use warnings;
my @arr = (1,2,3,4);
my $ele = pop ( map{10* $_ } @arr ) ;
print "\n element is $ele";
:$ perl map.pl
Not an ARRAY reference at map.pl line 4.

最佳答案

map{10* $_ } @arr

生成一个列表,其元素是 @arr 的相应元素乘以 10。它生成数组。因此,您不能从中弹出任何内容。您可以访问最后一个元素:

(map 10 * $_, @arr)[-1]

但是, map 不会改变@arr。如果你想这样做,

 $_ *= 10 for @arr;

map更合适。

关于perl - 为什么 pop/shift 不能与 perl 中的 map/grep 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065397/

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