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可能不能意识到错了 直到到达"}"