Perl新手在这里。
Perl documentation for map
显示两种使用形式:
map BLOCK LIST
map EXPR, LIST
我不完全理解两者之间的语义差异。我什么时候应该选择一种形式呢? EXPR
形式是否将我限制为一个表达式,而BLOCK
形式允许我有多个语句(更复杂的逻辑)?
答案 0 :(得分:3)
除语法之外的唯一区别是curlies引入的范围。例如,
>perl -E"use strict; map my $x = $_, 1,2,3,4; say $x"
>perl -E"use strict; map { my $x = $_ } 1,2,3,4; say $x"
Global symbol "$x" requires explicit package name at -e line 1.
Execution of -e aborted due to compilation errors.