首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Perl 6中使用与操作系统无关的路径?

如何在Perl 6中使用与操作系统无关的路径?
EN

Stack Overflow用户
提问于 2019-09-04 06:53:10
回答 2查看 102关注 0票数 7

Perl 6确实包含用于指定路径的通用开放源码软件类,以及包含文件规范的$*SPEC。默认情况下,新路径使用规范的当前值。但是,从文档中可以看出,如果执行类似的操作,则完全不清楚

代码语言:javascript
运行
复制
mkdir IO::Path.new( 'a/b/c' );

将在所有操作系统上正常工作,或者您需要专门创建依赖于操作系统的代码。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-04 07:45:39

我正在Windows7上尝试这一点(根据标记,这是您最感兴趣的OSes之一),使用

代码语言:javascript
运行
复制
This is Rakudo Star version 2019.03.1 built on MoarVM version 2019.03
implementing Perl 6.d.

看起来就像这样

代码语言:javascript
运行
复制
> 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使用的。还有一个关于烘焙试验的关于/IO::Path在Windows上变成\

正如伊丽莎白·马蒂森( Elizabeth Mattijsen )所指出的,Windows似乎只是支持正斜杠本身。其他人则声称这就是永远的情况。

实际上,Windows的每一个版本,以及从2.0开始的每一个Windows版本,都接受了"/“作为路径分隔符。

票数 9
EN

Stack Overflow用户

发布于 2019-09-04 07:43:31

在Windows 10 Enterprise上:

代码语言:javascript
运行
复制
C:\Users\me>c:/rakudo/bin/perl6 -e "mkdir IO::Path.new( 'a/b/c' )"

C:\Users\me>tree a
Folder PATH listing
Volume serial number is xxx
C:\USERS\ME\A
└───b
    └───c
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57782961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档