在 IO::CatHandle 中§
有关方法 slurp,请参阅上下文中的主要文档
method slurp(IO::CatHandle:)
读取所有可用的源句柄输入并将其作为 Buf
(如果句柄处于二进制模式)或 Str
(否则)返回。如果源句柄队列已耗尽,则返回 Nil
。
(my = 'foo'.IO).spurt: 'foo';(my = 'bar'.IO).spurt: 'bar';IO::CatHandle.new( , ).slurp.say; # OUTPUT: «foobar»IO::CatHandle.new(:bin, , ).slurp.say; # OUTPUT: «Buf[uint8]:0x<66 6f 6f 62 61 72>»IO::CatHandle.new .slurp.say; # OUTPUT: «Nil»
在 IO::Handle 中§
有关方法 slurp,请参阅上下文中的主要文档
method slurp(IO::Handle: :, :)
返回从当前文件指针到末尾的所有内容。如果调用者处于二进制模式或将 $bin
设置为 True
,则将返回 Buf
,否则将使用调用者的当前.encoding
对内容进行解码并返回 Str
。
如果将 :$close
设置为 True
,则将在完成读取后关闭句柄。
注意:在 Rakudo 上,此方法在 2017.04 版本中引入;$bin
参数在 2017.10 中添加。
在 IO::Path 中§
有关例程 slurp,请参阅上下文中的主要文档
multi method slurp(IO::Path: :, :)
读取文件的所有内容,并将其作为 Buf
(如果 :$bin
为 True
)或 Str
(如果 :$bin
为 False
)返回,并使用 :$enc
编码进行解码,默认为 utf8
。之后将关闭文件。有关 :$enc
的有效值,请参阅 &open
。
在独立例程中§
有关子例程 slurp,请参阅上下文中的主要文档
multi slurp(IO::Handle = , |c)multi slurp(IO() , |c)
将整个文件的内容吸入 Str
(如果为 :bin
,则吸入 Buf
)。接受 :bin
和 :enc
可选命名参数,其含义与 open() 相同;可能的编码与所有其他 IO
方法中的编码相同,并在 encoding
例程中列出。如果文件不存在或是一个目录,则该例程将失败
。如果没有参数,则子例程 slurp
将对 $*ARGFILES
进行操作,在没有文件名的情况下,$*ARGFILES
默认为 $*IN
。
# read entire file as (Unicode) Strmy = slurp "path/to/file";# read entire file as Latin1 Strmy = slurp "path/to/file", enc => "latin1";# read entire file as Bufmy = slurp "path/to/file", :bin;