मैं कुछ सबसेट को परिभाषित करना चाहूंगा, जिसमें मैं die
कुछ उपयोगी त्रुटि संदेशों के लिए कुछ बाधाएं और कुछ बयान भी जोड़ रहा हूं । मैं उन्हें मॉड्यूल के शीर्ष पर परिभाषित नहीं करना चाहता जो उन सबसेट का उपयोग करता है और इसके बजाय उन्हें किसी अन्य मॉड्यूल में रखना चाहता है, जबकि उनके पूरी तरह से योग्य नामों (FQNs) का उपयोग करके भी दूर कर रहा है। उदाहरण के लिए, मेरे पास है
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;