Piszę pakiet rysunków z niektórymi częściami, a operatorzy i typy danych są rozproszone po całej. Jednak nie chcę, aby użytkownicy dodawali odpowiednie moduły za każdym razem, ponieważ byłoby to dość bałagan, na przykład miałbym Point
klasę, Monoid
rolę i Style
klasę na różnych ścieżkach, takich jak ten
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 {...}
Chciałbym mieć haskell
podobne preludium lib/Package/Prelude.pm6
z efektem, że mogę pisać takie skrypty
use Package::Prelude;
# I can use Point right away, Style etc...
zamiast robić
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
Próbowałem wielu rzeczy:
- Ta wersja nie daje mi właściwego efektu, muszę wpisać całą ścieżkę do punktu, tj.
Package::Data::Point
...
unit module Package::Prelude;
# $?FILE = lib/Package/Prelude.pm6
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
- Ta wersja daje mi od
Point
razu, ale mam problemy z operatorami i tak dalej, chciałbym również automatycznie dodać wszystko z eksportowanych procedur we wspomnianych przykładowych pakietach.
# $?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
...
}
Czy wy, ludzie, znacie lepszy i szybki sposób na uzyskanie takiego pliku przypominającego preludium?
unit class Package::Data::Point
. Nie musisz używaćmodule
.