当我运行perl raku命令行程序时,当前工作目录中会出现一个lib目录-如何防止这种情况发生?

时间:2019-03-26 06:15:14

标签: command-line perl6 raku

当我运行perl raku命令行程序时,lib目录(和precomp文件)出现在当前工作目录中-如何防止/避免这种情况?

2 个答案:

答案 0 :(得分:3)

您为什么要这样做?实际上,它们是预编译文件,稍后将在您再次运行它时使用它们。您可以通过将.precomp添加到.gitignore文件中来阻止将它们添加到存储库中,但是它们是运行Perl 6所固有的有用文件。 如this answer所示,这可能是由于.被包含在您的PERL6LIB变量中。您可以从此处删除它,以防止在当前目录中发生。不过,它仍然可以在其他地方发生。

答案 1 :(得分:3)

Rakudo Perl 6使用一连串的存储库来加载模块。如果您加载模块,但该模块不在顶部存储库中,则会在下一个模块中查找,依此类推。

它还将预编译模块,以便在第二次使用模块时更快地加载它们。

通常,如果您安装一个模块,它将以这种方式使用一次:将其precomp文件放置在安装该模块的存储库中。
如果您不打算使用它,则将创建一个新的。
由于不一定知道它所依赖的其他模块,因此此precomp文件始终放在存储库链的开头。

因此,您显然拥有一个没有precomp的模块,并且您在存储库链的顶部以某种方式拥有./lib

它可以在代码中的PERL6LIB-I命令行参数或use lib './lib';行中。

您可以尝试重新安装该模块,以查看是否阻止了该模块的发生。