模块内部的相对路径

时间:2019-07-02 09:13:17

标签: module perl6 zef

我有this module,需要一个特定的文件才能工作。您可以传递您要使用或不使用的文件的路径。如果不这样做,那么将采用默认文件。该默认文件位于资源文件夹中,因此我将路径键入为:“ resources / data / type-graph.txt”。问题是,这不起作用,因为它将我的CWD作为根目录。

您知道如何创建相对于模块目录的路径吗?

任何建议都值得赞赏:)。

1 个答案:

答案 0 :(得分:10)

您应该看看Modules documentation page。 在此示例中,可以访问位于资源文件夹中的文件:

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

您还需要在META6.json中列出文件,以便在安装模块后即可访问该文件。

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

如guifa在评论中所述,%?RESOURCES适用于单个文件,不适用于目录结构。它不能保证文件的实际存储方式。因此%?RESOURCES<templates>.dir无效。