Я хотів би визначити кілька підмножин, до яких я також додаю кілька обмежень і деякі 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;