在 IO::Spec::Unix 中§
有关 方法 join 的主要文档,请参阅 上下文
method join ($, Str , Str --> Str)
类似于 catpath
,它获取两个路径片段并对其进行连接,必要时添加或删除路径分隔符,但如果 $dir
和 $file
都是字符串 '/'
或如果 $dir
是字符串 '.'
,它将仅返回 $file
。对于具有卷的系统,第一个参数将被忽略(它存在是为了与其他 IO::Spec
类型保持一致的接口)。
IO::Spec::Unix.join($, 'foo', 'bar').say; # OUTPUT: «foo/bar»IO::Spec::Unix.join($, '/', '/').say; # OUTPUT: «/»IO::Spec::Unix.join($, '.', 'foo').say; # OUTPUT: «foo»say .join(True,".","/foo"); # OUTPUT: «/foo»
在 List 中§
有关 例程 join 的主要文档,请参阅 上下文
sub join(, *)method join(List: = "")
通过对每个元素调用 .Str
,将列表的元素视为字符串,用 $separator
交错排列,并将所有内容连接成一个字符串。
示例
say join ', ', <a b c>; # OUTPUT: «a, b, c»
方法形式还允许你省略分隔符
say <a b c>.join; # OUTPUT: «abc»
请注意,方法形式不会展平子列表
say (1, <a b c>).join('|'); # OUTPUT: «1|a b c»
子例程形式表现得很有吸引力,将第一个之后的全部参数展平为单个列表
say join '|', 1, <a b c>; # OUTPUT: «1|a|b|c»
在这种情况下,列表 <a b c>
会被吸收并展平,这与以方法形式调用 join
时发生的情况不同。
如果列表中的一个元素恰好是 Junction
,那么 join
也会返回一个 Junction
,其中连接尽可能多地完成
say ("a"|"b","c","d").join; # OUTPUT: «any(acd,bcd)»
在 IO::Spec::Win32 中§
有关 方法 join 的主要文档,请参阅 上下文
method join (Str , Str , Str --> Str)
类似于 catpath
,它获取两个路径片段并对其进行连接,必要时添加或删除路径分隔符,但如果 $dir
和 $file
都是字符串 '/'
或如果 $dir
是字符串 '.'
,它将仅返回 $file
。对于具有卷的系统,第一个参数将被忽略(它存在是为了与其他 IO::Spec
类型保持一致的接口)。
IO::Spec::Win32.join('C:', '/some/dir', 'foo.txt').say;# OUTPUT: «C:/some/dir\and/more»IO::Spec::Win32.join('C:', '.', 'foo.txt').say;# OUTPUT: «C:foo.txt»IO::Spec::Win32.join('C:', 「\」, '/').say;# OUTPUT: «C:\»IO::Spec::Win32.join('//server/share', 「\」, '/').say;# OUTPUT: «//server/share»IO::Spec::Win32.join('E:', '', 'foo.txt').say;# OUTPUT: «E:foo.txt»
在 Any 中§
有关 方法 join 的主要文档,请参阅 上下文
method join( = '') is nodal
通过调用 self.list
将对象转换为列表,并在列表上调用 .join
。可以采用分隔符,默认情况下分隔符为空字符串。
(1..3).join.say; # OUTPUT: «123»<a b c>.join("❧").put; # OUTPUT: «a❧b❧c»
在 IO::Spec::Cygwin 中§
有关 方法 join 的主要文档,请参阅 上下文
method join(|c)
与 IO::Spec::Win32.join
相同,除了在最终结果中将反斜杠替换为斜杠。
在 Thread 中§
有关 方法 join,请参阅 上下文中的主要文档
method join(Thread:)
等待线程完成。