Относительный путь внутри модуля - PullRequest
9 голосов
/ 02 июля 2019

У меня есть этот модуль , для работы которого необходим определенный файл.Вы можете передать путь к файлу, который вы хотите использовать или нет.Если вы этого не сделаете, то будет взят файл по умолчанию.Этот файл по умолчанию находится в папке ресурсов, поэтому я набрал путь: «resources / data / type-graph.txt».Проблема в том, что он не работает, потому что он принимает мой CWD в качестве корневого каталога.

Знаете ли вы, как сделать путь относительно модуля dir?

Любое предложение приветствуется:).

1 Ответ

10 голосов
/ 02 июля 2019

Обратите внимание на страницу документации Модули . Там приведен этот пример для доступа к файлу, расположенному в папке ресурсов:

my $template-text = %?RESOURCES<templates/default-template.mustache>.slurp;

Вам также необходимо перечислить файл в META6.json, чтобы файл был доступен после установки модуля.

{
    ...,
    "resources": [ "templates/default-template.mustache"]
}

Как отметил Гайфа в комментарии %?RESOURCES работает с отдельными файлами, а не со структурами каталогов. Он не дает никаких гарантий того, как файлы хранятся на самом деле. Так что %?RESOURCES<templates>.dir не будет работать.

...