Что такое perl6 эквивалент @INC, пожалуйста? - PullRequest
0 голосов
/ 12 сентября 2018

Я иду

export PERL6LIB="/GitHub/perl6-Units/lib"

, а затем

echo $PERL6LIB
/GitHub/perl6-Units/lib

Но когда я запускаю perl6 t/01-basic.t

use v6;

use Test;

plan 3;

lives-ok {
    use Units <m>;
    ok @Units::UNITS.elems > 0;
    ok (0m).defined;
} 

done-testing;

Я все еще получаю ошибку

===SORRY!===
Could not find Units at line 8 in:
    /Users/--me--/.perl6
    /usr/local/Cellar/rakudo-star/2018.01/share/perl6/site
    /usr/local/Cellar/rakudo-star/2018.01/share/perl6/vendor
    /usr/local/Cellar/rakudo-star/2018.01/share/perl6
    CompUnit::Repository::AbsolutePath<140707489084448>
    CompUnit::Repository::NQP<140707463117264>
    CompUnit::Repository::Perl5<140707463117304>

В Perl 5 я бы использовал print "@INC";, чтобы увидеть, какие пути ищутся в lib до того, как выдается ошибка.Использование say flat $*REPO.repo-chain.map(*.loaded); либо до его загрузки, либо после того, как оно выдает исключение.

Любая помощь будет принята с благодарностью - или, возможно, намек на то, что вставить в ~/.perl6, поскольку я не могу получить символическую ссылку наработать либо.

1 Ответ

0 голосов
/ 14 сентября 2018

Само сообщение об ошибке говорит вам о доступных путях к библиотекам. Вы не можете распечатать их, поскольку ожидаете, что действие во время выполнения (say) произойдет до ошибки времени компиляции - вы можете распечатать $*REPO во время компиляции, но опять-таки исключение уже показывает вам, что вы хотел.

$ PERL6LIB="/GitHub/perl6-Units/lib" perl6 -e 'BEGIN say $*REPO.repo-chain; use Foo;'
(file#/GitHub/perl6-Units/lib inst#/Users/ugexe/.perl6 inst#/Users/ugexe/.rakudobrew/moar-2018.08/install/share/perl6/site inst#/Users/ugexe/.rakudobrew/moar-2018.08/install/share/perl6/vendor inst#/Users/ugexe/.rakudobrew/moar-2018.08/install/share/perl6 ap# nqp# perl5#)
===SORRY!===
Could not find Foo at line 1 in:
    /GitHub/perl6-Units/lib
    /Users/ugexe/.perl6
    /Users/ugexe/.rakudobrew/moar-2018.08/install/share/perl6/site
    /Users/ugexe/.rakudobrew/moar-2018.08/install/share/perl6/vendor
    /Users/ugexe/.rakudobrew/moar-2018.08/install/share/perl6
    CompUnit::Repository::AbsolutePath<140337382425072>
    CompUnit::Repository::NQP<140337350057496>
    CompUnit::Repository::Perl5<140337350057536>

Вы видите, что /GitHub/perl6-Units/lib отображается в доступных путях, что не похоже на ваш пример. Я бы спросил, правильно ли настроена ваша оболочка / env.

...