当我运行perl raku命令行程序时,lib目录(和precomp文件)出现在当前工作目录中-如何防止/避免这种情况?
答案 0 :(得分:3)
您为什么要这样做?实际上,它们是预编译文件,稍后将在您再次运行它时使用它们。您可以通过将.precomp
添加到.gitignore
文件中来阻止将它们添加到存储库中,但是它们是运行Perl 6所固有的有用文件。
如this answer所示,这可能是由于.
被包含在您的PERL6LIB变量中。您可以从此处删除它,以防止在当前目录中发生。不过,它仍然可以在其他地方发生。
答案 1 :(得分:3)
Rakudo Perl 6使用一连串的存储库来加载模块。如果您加载模块,但该模块不在顶部存储库中,则会在下一个模块中查找,依此类推。
它还将预编译模块,以便在第二次使用模块时更快地加载它们。
通常,如果您安装一个模块,它将以这种方式使用一次:将其precomp文件放置在安装该模块的存储库中。
如果您不打算使用它,则将创建一个新的。
由于不一定知道它所依赖的其他模块,因此此precomp文件始终放在存储库链的开头。
因此,您显然拥有一个没有precomp的模块,并且您在存储库链的顶部以某种方式拥有./lib
。
它可以在代码中的PERL6LIB
,-I
命令行参数或use lib './lib';
行中。
您可以尝试重新安装该模块,以查看是否阻止了该模块的发生。