这有效,
print map { $_." x" => $_ } 1..5;
print map { ("$_ x" => $_) } 1..5;
print map { ("$_ x") => $_ } 1..5;
但这会引发语法错误,
print map { "$_ x" => $_ } 1..5;
这是已记录的错误、未记录的错误,还是我不明白为什么它不应该编译?
为什么 Perl 认为这应该是map EXPR, LIST
代替map BLOCK LIST
From perlref
因为大括号(大括号)用于包括 BLOCK 在内的其他几个内容,所以您有时可能需要通过在前面放置 + 或 return 来消除语句开头的大括号的歧义,以便 Perl 意识到左大括号不是开始 BLOCK 。使用卷曲的经济和助记价值被认为值得这种偶尔的额外麻烦.
为了让你的意图更清晰并帮助解析器,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)