可以在Pair声明的左侧使用关键词(尚未记录,我正在解决this issue right now,但是我想使所有内容正确)。但是,我在任何地方都没有发现什么是什么,什么也不会被认为是裸字键。
这似乎可行
say (foo'bar-baz => 3); # OUTPUT: «foo'bar-baz => 3»
这不是
say (foo-3 => 3); # OUTPUT: «(exit code 1) ===SORRY!=== Error while compiling /tmp/jorTNuKH9VUndeclared routine: foo used at line 1»
因此,它显然遵循the same syntax as the ordinary identifiers。那是对的吗?我在这里想念东西吗?
答案 0 :(得分:10)
Perl 6中没有隐词,因为它们存在于Perl 5中,并且在Perl 6中根本没有使用该术语。
在两种情况下,我们可以将其称为“裸标识符”:
\h*
),然后是字符=>
。这将左侧的标识符作为对键,并将在=>
之后解析的项作为对值。这是一个完全的句法决定;例如,带有该标识符的子或类型的存在不会产生任何影响。这两种情况仅在以下两种意义上相关:在Perl 6语法中它们都是term
的情况,并且它们都希望解析{{3}之后的identifier
}。哪个获胜取决于最长令牌匹配语义;存在这样的限制:标识符和=>
之间可能只有水平空白,以确保将标识符,空白和=>
一起计为声明性前缀,因此情况1总是会获胜在案例2中。