Debugging 为什么可以';我命名一个无符号变量v+;数字

Debugging 为什么可以';我命名一个无符号变量v+;数字,debugging,raku,rakudo,Debugging,Raku,Rakudo,运行以下简单代码,检查无符号变量的行为,会产生一个奇怪的错误: use v6.d; # Rakudo Star 2020.05.01 (Windows) sub test ($p) { say $p; } my \v1 = 1; say v1; # v1 (ERROR) test(v1); # v1 (ERROR) my \v = 1; say v; # 1 (Correct) test(v); # 1 (Correct) my \vv1 = 1; say vv1

运行以下简单代码,检查无符号变量的行为,会产生一个奇怪的错误:

use v6.d;  # Rakudo Star 2020.05.01 (Windows)

sub test ($p) {
    say $p;
}

my \v1 = 1;

say v1;   # v1 (ERROR)
test(v1); # v1 (ERROR)

my \v = 1;

say v;   # 1 (Correct)
test(v); # 1 (Correct)

my \vv1 = 1;

say vv1;   # 1 (Correct)
test(vv1); # 1 (Correct)

my \s1 = 1;

say s1;   # 1 (Correct)
test(s1); # 1 (Correct)

这是为什么呢?

以v开头,后面跟一个数字(点和其他数字)的文字被考虑在内。这意味着您不能使用任何以v开头并后跟数字的内容作为无符号标识符

say (v1.2.3).parts; # OUTPUT: «(1 2 3)␤» 

这可能是文档不足,不过…

我认为这是一个bug。局部定义应始终覆盖全局定义。将^5->\i{say i}@ElizabethMattijsen的
say i
进行比较有人报告过吗?我不知道。:-)很抱歉