加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

repository – 尝试在运行时管理Perl6的$* REPO

发布时间:2020-12-16 06:21:39 所属栏目:大数据 来源:网络整理
导读:在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(可能因为它
在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记录在哪里?

问:如果没有,我应该使用什么?

谢谢

解决方法

查找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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读