首页 > 解决方案 > 悬空主题(或任何其他)变量不会失败

问题描述

这有效:

$_ =

say "hi";

也就是说,您可以在分配和后面的内容之间放置任意数量的空格,它会简单地忽略它。您也可以使用任何变量(带有my)。实际上, $_ 将被分配 的结果say,即True.

这是令人惊讶的,但符合规范,还是只是令人惊讶?

标签: syntaxraku

解决方案


运算符的两侧可以有任意数量的空格。因此:

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 中有一些地方空格很重要,但中缀运算符之间的空格不是其中之一。


推荐阅读