这段代码按预期工作:
当第7行处于自己的作用域时,它按预期工作。
但是当第8行处于它自己的作用域时:
为什么这两个子标题被不同对待?
sub infix:<mean>(*@a) {
@a.sum / @a.elems
}
sub Mean (*@a) {
@a.sum / @a.elems
}
say EVAL 'Mean 2, 6, 4'; # Output: 4
say EVAL '2 mean 6 mean 4'; # Output: 4
当第7行处于自己的作用域时,它按预期工作。
{say EVAL 'Mean 2, 6, 4';} # Output: 4
但是当第8行处于它自己的作用域时:
{say EVAL '2 mean 6 mean 4';}
===SORRY!=== Error while compiling .../EVAL_1
Two terms in a row
at .../EVAL_1:1
------> 2⏏ mean 6 mean 4
expecting any of:
infix
infix stopper
statement end
statement modifier
statement modifier loop
为什么这两个子标题被不同对待?