首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试在运行时管理perl6的$*REPO

尝试在运行时管理perl6的$*REPO
EN

Stack Overflow用户
提问于 2018-06-29 02:47:00
回答 1查看 174关注 0票数 4

在Perl6中复制FindBin::libs的行为。

代码语言:javascript
复制
  (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的文档记录在哪里?

问:如果不是,我应该使用什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-06-29 08:39:00

查找lib/文件夹只适用于CompUnit::Repository::FileSystem repos --它不适用于CompUnit::Repository::Installation repos (已安装的模块)。

话虽如此,但以下情况是可能的:

代码语言:javascript
复制
~/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是否明智。我希望至少会有一些重要的编译前惩罚。如果它不一定是运行时,那么下面是一个选项:

代码语言:javascript
复制
~/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)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51089505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档