我有一个非常简单的程序,它列出了给定目录中的所有. txt
文件。这个程序在我的Mac上完美运行,它有Rakudo Star版本2019.03.1
use File::Find;
my $folder="../Documents";
.say for find dir => $folder, name => /'.txt' $/;
当我尝试在具有Raku 2020.12.1的Windows 7上运行相同的程序时,它给出了以下内容:
$ raku html-adder.rk
===SORRY!=== Error while compiling C:\Users\lars\raku/html-adder.rk
Could not find File::Find in:
inst#C:\Users\lars\.raku
inst#C:\Programs\rakudo-moar-2021.02.1\share\perl6\site
inst#C:\Programs\rakudo-moar-2021.02.1\share\perl6\vendor
inst#C:\Programs\rakudo-moar-2021.02.1\share\perl6\core
ap#
nqp#
perl5#
at C:\Users\lars\raku/html-adder.rk:12
我已经将Raku更新到Raku 2021.02.1版本,并且再次出现相同的错误。我通过解压缩rakudo-moar-2021.02安装了它。1-01-win-x86_64-msvc.zip
即不使用任何安装程序。至于Mac上的Raku,我不记得安装了File::Find
模块,也不知道如何列出已安装的模块,即我没有检查File::Find
是否安装在Mac或Windows 7上。
如何使此程序在Windows 7上运行?
File::Find
没有内置在Raku中,也没有与Rakudo Star一起分发;据我所知,从来没有。
它是生态系统中的一个模块,您可以使用Zef安装(使用命令zef install File::Find
)。
它也是一个非常短的库。如果您有兴趣在不添加依赖项的情况下修复脚本,您可能需要查看File::Find的源代码;它足够短,您可以轻松地自己实现相同的功能。