我经常在工作目录中找到隐藏的子文件夹,正如我想的那样,它是由Perl 6编译器生成的,例如:
.precomp/0717742595706FA8D59800F9F9F7074236546DE7.1505852292.23535/0B/0BDF8C54D33921FEA066491D8D13C96A7CB144B9.repo-id
Run Code Online (Sandbox Code Playgroud)
所以,我有两个问题:
这是正常的吗?
对编译器来说是不可或缺的还是有办法避免它?
该.precomp文件夹包含Perl 6模块的预编译形式.
第一次使用模块时,它会被编译并存储,.precomp因此不必再次编译它.(目前只有模块,而不是程序)
您可以删除该目录,您的代码将继续运行.它会慢一些.请注意,下次使用模块时将重新创建它,除非无法写入目录.我偶尔会删除它; 虽然这是因为我经常从git重建Rakudo.我这样做只是为了清理旧安装的残余.
长期看似任意的目录名称的原因是由于可以同时安装来自模块的多个作者的多个版本,以及Unicode模块名称的可能性.有人说使用另一个系统可以给文件/目录更合理的名称,它还没有发生.