Perl`map`:何时使用EXPR vs. BLOCK表单?

时间:2014-04-28 04:02:12

标签: perl map

Perl新手在这里。

Perl documentation for map显示两种使用形式:

  • map BLOCK LIST
  • map EXPR, LIST

我不完全理解两者之间的语义差异。我什么时候应该选择一种形式呢? EXPR形式是否将我限制为一个表达式,而BLOCK形式允许我有多个语句(更复杂的逻辑)?

1 个答案:

答案 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.