perl map 函数
perl 查看函数使用:
perldoc -f map
map BLOCK LIST 块和列表
map EXPR,LIST 表达式和列表
计算列表每个元素的BLOCK或者表达式(通常设置每个变量为$_),每个数组元素计算返回的值构成了新的结果集。
在scalar环境下, 如果最终存储在数组中,则表示处理后为List.若返回存储在变量中,则返回元素个数。
注意 $_ 是数组元素值的变量名称,因此它可以用于修改数组元素的值。这个是被支持和有用的,
可以导致奇异的结果,如果数组的元素不可用。使用常规的foreach loop 在很多情况下会变得更加简洁。
@chars = map(chr, @nums);
translates a list of numbers to the corresponding characters. And
%hash = map { getkey($_) => $_ } @array;
is just a funny way to write
%hash = ();
foreach $_ (@array) {
$hash{getkey($_)} = $_;
}
“{” 可以是HASH 数组和代码块,so "map{..."可以是map BLOCK LIST 或者map EXPR,LIST.
Because perl doesn't look ahead for the closing "}" perl会猜测基于它发现的在"{"之后的。
但是Perl可能不能意识到错了 直到到达"}"