按上次修改对目录进行排序

Sky*_*eed 8 raku

我想按 raku 中最后修改的文件对目录进行排序。我得到这样的文件列表:

"directory/".IO.dir;
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以做到这一点?

Eli*_*sen 9

.dir返回一个对象序列IO::Path

IO::Path对象有一个.modified方法返回Instant目录条目已修改。

将所有这些结合起来:

say "$_: $_.modified.DateTime()" for "lib".IO.dir.sort(*.modified);
Run Code Online (Sandbox Code Playgroud)

您将获得“lib”目录中的文件列表,其中的修改DateTime按升序排列。

要按降序排列,请使用-*.modified或调用.reverse结果。

至于排序性能:当您sort使用接受单个参数的 Callable 进行调用时,它会在幕后为您执行Schwartzian 转换。