syntax - 悬空主题(或任何其他)变量不会失败
问题描述
这有效:
$_ =
say "hi";
也就是说,您可以在分配和后面的内容之间放置任意数量的空格,它会简单地忽略它。您也可以使用任何变量(带有my
)。实际上, $_ 将被分配 的结果say
,即True
.
这是令人惊讶的,但符合规范,还是只是令人惊讶?
解决方案
运算符的两侧可以有任意数量的空格。因此:
say 1
+ 2
+ 3;
就编译器而言,它与以下内容完全相同:
say 1 + 2 + 3;
赋值 ( =
) 只是另一个运算符,因此也遵循这些规则。
此外,say
只是一个普通的内置子程序,所以它就像:
my $answer = flip '24';
say $answer; # 42
除了更多的空格:
my $answer =
flip '24';
say $answer; # 42
Perl 6 中有一些地方空格很重要,但中缀运算符之间的空格不是其中之一。