@H_404_4@
在Perl 6中复制FindBin :: libs的行为.
(1) Start from `$Bin`. (2) Search for `./lib` dir's above it. (3) prefix them to the search list.
在P6中,这需要管理$* REPO,我认为需要使用CompUnit :: RepositoryRegistry,但我在modules.perl6.org(可能因为它是核心)或docs.perl6.org上找不到任何文档.
问:CompUnit :: RepositoryRegistry是否正确用于将一些新目录添加到$* REPO管理的列表中?
问:如果是这样,CU :: RR记录在哪里?
问:如果没有,我应该使用什么?
谢谢
@H_404_4@解决方法
查找lib /文件夹只能用于CompUnit :: Repository :: FileSystem repos – 它不能用于CompUnit :: Repository :: Installation repos(已安装的模块).
据说以下是可能的:
~/repos/rakudo$perl6 -e '\ say $*REPO.repo-chain.grep(* ~~ CompUnit::Repository::FileSystem);\ my $lib = CompUnit::Repository::FileSystem.new(prefix => $*CWD.parent.absolute);\ CompUnit::RepositoryRegistry.use-repository($lib);\ say $*REPO.repo-chain.grep(* ~~ CompUnit::Repository::FileSystem) ' () (file#/Users/ugexe/repos)
我不确定在编译时间之外修改$* REPO是多么明智.我预计至少会有一些重要的预审惩罚.如果它不必是运行时,那么以下是一个选项:
~/repos/rakudo$perl6 -e '\ BEGIN say $*REPO.repo-chain.grep(* ~~ CompUnit::Repository::FileSystem);\ BEGIN my $lib = $*CWD.parent.absolute;\ BEGIN use lib $lib;\ say $*REPO.repo-chain.grep(* ~~ CompUnit::Repository::FileSystem) ' () (file#/Users/ugexe/repos)@H_404_4@ @H_404_4@