我想定义一些子集,并在其中添加一些约束和一些die
声明,以提供一些有用的错误消息。我不想在使用这些子集的模块的顶部定义它们,而是想将它们放在另一个模块中,同时也不要使用它们的完全限定名称(FQN)。例如,我有
unit module Long::Module::Subsets;
subset PosInt
where ($_ ~~ Int || "The value must be an integer")
&& ($_ > 0 || "The value must be greater than 0")
is export
;
# other subsets ...
但是得到了
===SORRY!=== Error while compiling /tmp/637321813/main.pl6
Two terms in a row ...
那不起作用,我想我可以做一些如下的事情,但是我想知道是否可以避免:
use Long::Module::Subsets;
unit Long::Module;
my constant PosInt = Long::Module::Subsets::PosInt;
my constant Byte = Long::Module::Subsets::Byte;
# ... more subsets here
# ... some code here
my PosInt $age;
1
附带说明一下,有一个包含PosInt的通用子集模块:github.com/bradclawsie/Subsets-Common
—
user0721090601