unit module My::Show;
sub show (:$indent = False) is export {
if $indent {
say " Showing with indentation.";
} else {
say "Showing without indentation.";
}
}
导入此代码时,我想指定以下三个中的任何一个:
use My::Show :indent;
use My::Show :!indent;
use My::Show;
如何做到这一点?
如果我对你的问题的评论中的猜测是错误的,那么这个答案可能对你来说毫无用处。如果我是对的,那么希望对您有用。
我认为你需要写一个自定义的sub EXPORT
# main.raku
use lib '.';
use My::Show [:indent],;
show;
# My/Show.rakumod
sub EXPORT (@ (:indent($default-indent) = False)) {
sub show (:$indent = $default-indent) is export { say $indent }
Map.new: '&show' => &EXPORT::DEFAULT::show
}
unit module My::Show;
关于这个答案有相当多的内容需要解开和讨论,但我太累了,无法做好,如果我的猜测是错误的,那么无论如何这都是没有意义的,如果我的猜测是正确的,那么也许文档就足够了,所以我将发布今晚的内容,并尝试明天再回来。