मैं कुछ हिस्सों के साथ एक ड्राइंग पैकेज लिख रहा हूं, और मेरे पास ऑपरेटर और डेटा प्रकार बिखरे हुए हैं। हालाँकि, मैं नहीं चाहता कि उपयोगकर्ता हर बार इसी मॉड्यूल को जोड़े, क्योंकि यह काफी गन्दा होगा, उदाहरण के लिए मेरे पास एक Point
वर्ग, एक Monoid
भूमिका और Style
विभिन्न रास्तों में एक वर्ग होगा जैसे
unit module Package::Data::Monoid;
# $?FILE = lib/Package/Data/Monoid.pm6
role Monoid {...}
unit module Package::Data::Point;
# $?FILE = lib/Package/Data/Point.pm6
class Point {...}
unit module Package::Data::Style;
# $?FILE = lib/Package/Data/Style.pm6
class Style {...}
मैं एक करना चाहते हैं haskell
में प्रस्तावना की तरह lib/Package/Prelude.pm6
है कि मैं इस तरह के स्क्रिप्ट लिख सकते हैं प्रभाव के साथ
use Package::Prelude;
# I can use Point right away, Style etc...
करने के बजाय
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
# I can too use point right away, but for users not knowing the
# inner workings it's too overwhelming
मैंने कई चीजों की कोशिश की है:
- यह संस्करण मुझे सही प्रभाव नहीं देता है, मुझे पूरे मार्ग को इंगित करने के लिए टाइप करना होगा, अर्थात
Package::Data::Point
...
unit module Package::Prelude;
# $?FILE = lib/Package/Prelude.pm6
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
- यह संस्करण मुझे
Point
तुरंत अधिकार देता है, लेकिन मुझे ऑपरेटरों और इतने पर समस्याएं मिलती हैं, मैं भी उदाहरण के पैकेज में निर्यात की गई दिनचर्या से स्वचालित रूप से सब कुछ जोड़ना चाहूंगा।
# $?FILE = lib/Package/Prelude.pm6
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
sub EXPORT {
hash <Point> => Point
, <Style> => Style
, <mappend> => &mappend
...
}
क्या आप लोगों को इस तरह की प्रील्यूड जैसी फाइल पाने का एक बेहतर और त्वरित तरीका पता है?
unit class Package::Data::Point
। आप का उपयोग करने की जरूरत नहीं हैmodule
।