ฉันกำลังเขียนแพคเกจการวาดภาพที่มีบางส่วนและฉันมีโอเปอเรเตอร์และชนิดข้อมูลกระจัดกระจายไปทั่ว อย่างไรก็ตามฉันไม่ต้องการให้ผู้ใช้เพิ่มโมดูลที่เกี่ยวข้องทุกครั้งเนื่องจากมันจะค่อนข้างยุ่งเช่นฉันมี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
คุณไม่จำเป็นต้องใช้