Ich möchte einige Teilmengen definieren, zu denen ich auch einige Einschränkungen und einige die
Anweisungen für einige nützliche Fehlermeldungen hinzufüge . Ich möchte sie nicht oben im Modul definieren, das diese Teilmengen verwendet, sondern sie in einem anderen Modul platzieren und gleichzeitig die Verwendung ihrer vollqualifizierten Namen (FQNs) vermeiden. Zum Beispiel habe ich
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 ...
aber bekam
===SORRY!=== Error while compiling /tmp/637321813/main.pl6
Two terms in a row ...
Das funktioniert nicht Ich dachte, ich könnte stattdessen etwas wie folgt tun, aber ich frage mich, ob ich es vermeiden könnte:
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;