在 IO::Spec::Unix 中§

有关方法 catpath 的主要文档,请参阅上下文

method catpath ($Str:D $part1Str:D $part2 --> Str:D)

获取两个路径片段并将它们连接起来,如有必要,添加或删除路径分隔符。第一个参数被忽略(它的存在是为了与其他IO::Spec类型保持一致的接口,用于具有卷的系统)。

IO::Spec::Unix.catpath($'some/dir''and/more').say;
# OUTPUT: «some/dir/and/more␤»

在 IO::Spec::Win32 中§

有关方法 catpath 的主要文档,请参阅上下文

method catpath (Str:D $volumeStr:D $dirStr:D $file --> Str:D)

从给定的卷、目录链和文件连接路径。可以为三个参数中的任何一个指定空字符串。不尝试使路径规范化。为此,请使用canonpath

IO::Spec::Win32.catpath('C:''/some/dir''foo.txt').say;
# OUTPUT: «C:/some/dir\foo.txt␤» 
 
IO::Spec::Win32.catpath('C:''/some/dir''').say;
# OUTPUT: «C:/some/dir␤» 
 
IO::Spec::Win32.catpath('''/some/dir''foo.txt').say;
# OUTPUT: «/some/dir\foo.txt␤» 
 
IO::Spec::Win32.catpath('E:''''foo.txt').say;
# OUTPUT: «E:foo.txt␤»

在 IO::Spec::Cygwin 中§

有关方法 catpath 的主要文档,请参阅上下文

method catpath (Str:D $volumeStr:D $dirStr:D $file --> Str:D)

IO::Spec::Win32.catpath 相同,但会在最后将所有反斜杠更改为斜杠

IO::Spec::Cygwin.catpath('C:''/some/dir''foo.txt').say;
# OUTPUT: «C:/some/dir/foo.txt␤» 
 
IO::Spec::Cygwin.catpath('C:''/some/dir''').say;
# OUTPUT: «C:/some/dir␤» 
 
IO::Spec::Cygwin.catpath('''/some/dir''foo.txt').say;
# OUTPUT: «/some/dir/foo.txt␤» 
 
IO::Spec::Cygwin.catpath('E:''''foo.txt').say;
# OUTPUT: «E:foo.txt␤»