perl - 在 perl(v5.14.2) 中,为什么 map{+0,0}() 正确而 map{0,0}() 不正确?

标签 perl

这个问题在这里已经有了答案:





Why does this map block contain an apparently useless +?

(2 个回答)


8年前关闭。




似乎 perl 将 {+0,0} 视为 BLOCK 而将 {0,0} 视为 EXPR
但为什么?这是特殊规定吗?

如果我想确保 {} 是一个匿名散列,无论大括号包含什么,我是否必须在 {} 之前放一个“+”?

谢谢。

最佳答案

为什么?因为它可能是,而且解析器在它需要决定的时候看起来还不够远,无法确定。

您是否必须在 {} 之前放置一个“+”才能将其视为匿名哈希构造函数而不管 {} 的内容如何?是的。

关于perl - 在 perl(v5.14.2) 中,为什么 map{+0,0}() 正确而 map{0,0}() 不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16607889/

相关文章:

perl - https 和 WWW::Mechanize - 接受特定证书 (MD5/SHA1/...)

regex - 检查小数点,如果不存在,则使用 awk/perl 将其添加到末尾

php - 用于添加出现在搜索引擎结果中的评级/星级的脚本

perl - 如何在 windows (activeperl) 中安装 ZeroMQ 及其 cpan perl 模块

perl - 当只需要字段的子集时,分割长行的高性能方法是什么

perl - Perl 中的 qq(<text>) 和 "<text>"有区别吗?

c - 在 C 程序上运行 perl 脚本时,我得到 GLOB(0x1a6a8830) 作为我的输出

regex - "\b"字边界如何影响 perl 中的输出?

regex - 如何在 Perl 中将变量作为正则表达式

Perl eval EXPR 用单引号或双引号括起来