【发布时间】:2017-07-13 14:08:40
【问题描述】:
我想在map 和grep 操作之后获取第一个或最后一个元素
过阵列。将shift 和pop 运算符与map 和grep 一起使用
似乎不起作用。有什么建议么?如果我从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和grep生成列表,但shift/unshift和push/pop对数组进行操作。列表和数组在 Perl 中不是一回事。您应该不太担心试图在一行中完成所有事情,而应该更担心编写正确的代码。 -
@MattJacob 我认为这是对这个问题的一个很好的回答
-
来自 Matt Jacob 的(很好但已删除?)答案的一个很好的链接:list vs array
标签: perl