Perl 6 确实有包含用于指定路径的 common OSs 以及包含文件规范的 $*SPEC 的类。 New paths 默认使用当前的 SPEC 值。但是,从文档中根本不清楚,如果做类似的事情

mkdir IO::Path.new( 'a/b/c' );

将在所有操作系统上正常工作,或者您需要专门创建与操作系统相关的代码。任何想法?

最佳答案

我正在 Windows 7(根据标签你似乎最感兴趣的操作系统之一)上尝试这个,使用

This is Rakudo Star version 2019.03.1 built on MoarVM version 2019.03
implementing Perl 6.d.

它似乎就是这样工作的
> with mkdir IO::Path.new('a/b/c') { say .e; say .absolute }
True
C:\rakudo\a\b\c

该目录确实已正确创建。

请注意,IO::Path 在其构造函数中采用默认为 IO::Spec$*SPEC 对象,因此该对象可以使用必要的操作系统相关部分。在 Rakudo 中 IO::Spec 确实被 mkdir 使用到 .absolute
在 Windows 上,/ 变成 IO::Path 中还有一个关于 \roast test

正如 Elizabeth Mattijsen 指出的那样,Windows 似乎只支持正斜杠。其他人声称情况就是这样 forever :

10-08 09:17
查看更多