我正试图让一个逻辑否定运算符。
¬ True;
multi sub prefix:<¬> ($n) {
return not $n;
}
当我运行上述程序时,它会返回以下错误:
$ perl6 test.pl6 ===SORRY!=== Error while compiling /home/devXYZ/test.pl6 Bogus statement at /home/devXYZ/test.pl6:1 ------> <BOL>⏏¬ True; expecting any of: prefix term
有谁知道原因可能是什么?
答案 0 :(得分:7)
新运算符的声明必须在使用之前出现。将程序更改为:
multi sub prefix:<¬> ($n) {
return not $n;
}
say ¬ True;
使其正常工作。
Perl 6具有严格的一次通过解析规则。因此,命令对影响被解析语言的任何事情都很重要 - 例如通过引入类型或新运算符。