Загрузка символов из простых файлов - PullRequest
3 голосов
/ 30 апреля 2019

Этот файл будет foo.pm6:

sub bar { "quux" }
say "Loaded";

А этот requirer.p6:

require "foo.pm6";

say bar;

require завершается с ошибкой, не загружается foo.pm6, и панель не найдена. Это также не помогает:

require foo;

say bar;

с той же ошибкой, по поводу отсутствия бара Этот файл:

require ::"foo";

say bar;

Не получается даже странно, с MVMArray: Can't shift from an empty array

ОБНОВЛЕНИЕ : молча происходит сбой, потому что он останавливается, когда находит неизвестный символ, bar, поэтому он не запускает «Загружен» до того, как выдает ошибку. Тем не менее, последняя ошибка странная.

Undeclared routine:
    bar used at line 9. Did you mean 'bag', 'VAR'?

Итак, если это не так, bar действительно импортируется? Если это так, в каком названии пакета? Как я могу использовать это?

1 Ответ

5 голосов
/ 30 апреля 2019

Вы можете использовать lib, чтобы добавить текущий каталог в путь поиска библиотеки.

Если я добавлю черту export к bar() in foo.pm6:

sub bar is export { "quux" }
say "Loaded";

Кажется работающим следующее (requirer.p6):

use v6;
use lib '.';
require foo <&bar>;
say bar;

Вывод :

Loaded
quux
...