我正在尝试在repl中创建一些类,当我创建第二个具有与第一类相同的属性的类时,会被告知已经定义。
这仅仅是repl无法正确处理名称空间的问题吗?它可以在文件中按预期方式工作。
Perl6版本:这是基于MoarVM版本2018.10构建的Rakudo版本2018.10。 实施Perl 6.c。
> class Thing {
* has $.stuff;
* }
(Thing)
> class OtherThing {
* has $.stuff;
* }
Package 'OtherThing' already has an attribute named '$!stuff'
in any scope_declarator at /home/path/.rakudobrew/moar-2018.10 /install/share/nqp/lib/Perl6/Grammar.moarvm line 1
in any term:sym<scope_declarator> at /home/path/.rakudobrew/moar-2018.10/install/share/nqp/lib/Perl6/Grammar.moarvm line 1
in any term at /home/path/.rakudobrew/moar-2018.10/install/share/nqp/lib/Perl6/Grammar.moarvm line 1
答案 0 :(得分:8)
我只是尝试在REPL上略有不同地复制了此内容,所以没有错误...
> class Thing { has $.stuff }
(Thing)
> class OtherThing { has $.stuff }
(OtherThing)
>
PS。将块分布在多行上时,确实会收到与您相同的错误。
这是基于实现Perl 6.c的MoarVM版本2018.10构建的Rakudo Star版本2018.10。
看起来您的错误是由REPL中的*多行块逻辑引起的-我认为这是一个错误。请报告吗?