在 IO::CatHandle 中§

请参阅主要文档 在上下文中 了解方法 seek

method seek(IO::CatHandle:D: |c)

在当前活动源句柄上调用 .seek,将所有参数转发给它,并返回结果。如果 源句柄队列已耗尽,则返回 Nil注意:此方法不会执行任何源句柄切换,因此在当前源句柄结束之后进行搜索不会搜索队列中的下一个源句柄,并且在当前源句柄开始之前进行搜索是一个致命错误。另请参阅 .next-handle,以了解有关何时切换源句柄的详细信息。

(my $f1 = 'foo'.IO).spurt: 'foo';
(my $f2 = 'bar'.IO).spurt: 'bar';
 
with IO::CatHandle.new: $f1$f2 {
    .get.say;                     # OUTPUT: «foo␤» 
    .seek: -2SeekFromCurrent;
    .readchars(2).say;            # OUTPUT: «oo␤» 
    .seek: 1000SeekFromCurrent# this doesn't switch to second handle! 
    .readchars(3).say;            # OUTPUT: «bar␤» 
    try .seek: -4;                # this won't seek to previous handle! 
    say ~$!;                      # OUTPUT: «Failed to seek in filehandle: 22␤» 
}

在 IO::Handle 中§

请参阅主要文档 在上下文中 了解方法 seek

method seek(IO::Handle:D: Int:D $offsetSeekType:D $whence --> True)

将文件指针(即任何后续读取或写入操作将开始的位置)移动到相对于 $whence 指定的位置指定的字节位置,$whence 可以是以下位置之一

  • SeekFromBeginning:文件的开头。

  • SeekFromCurrent:文件中当前的位置。

  • SeekFromEnd:文件的末尾。请注意,如果你想定位到文件末尾之前,你需要指定一个负偏移。