在Perl6中复制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上找不到任何与此相关的文档。
问:在$*REPO
管理的列表中添加一些新目录的前缀是不是应该使用CompUnit::RepositoryRegistry
?
问:如果是,CU::RR
的文档记录在哪里?
问:如果不是,我应该使用什么?
谢谢
发布于 2018-06-29 08:39:00
查找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)
https://stackoverflow.com/questions/51089505
复制相似问题