在 IO::CatHandle 中§

有关方法 nl-in 的主要文档,请参阅上下文

method nl-in(IO::CatHandle:D:is rw

将调用者的 $.nl-in 属性设置为指定的值,该值可以是 StrStr列表,其中每个 Str 对象表示行尾字符串。所有源句柄(包括活动句柄)都将使用提供的 $.nl-in 值。请注意,源句柄边界始终计为新的换行符。

(my $f1 = 'foo'.IO).spurt: "A\nB\nC";
(my $f2 = 'bar'.IO).spurt: "DxEx";
with IO::CatHandle.new: $f1$f2 {
    # .nl-in is ["\n", "\r\n"] by default: 
    (.get xx 2).raku.say# OUTPUT: «("A", "B").Seq␤» 
 
    .nl-in = 'x';
    (.get xx 3).raku.say# OUTPUT: «("C", "D", "E").Seq␤» 
    .close
}

在 IO::Handle 中§

有关方法 nl-in 的主要文档,请参阅上下文

method nl-in(--> Str:Dis rw

可以通过 .newopen 设置的属性之一。默认为 ["\x0A", "\r\n"]。采用 StrStr数组 来指定此句柄的输入行结尾。如果 .chomp 属性设置为 True,则会在 chomp 例程(例如 getlines)中去除这些结尾。

with 'test'.IO {
    .spurt: '1foo2bar3foo'# write some data into our test file 
    my $fh will leave {.close} = .open# can also set .nl-in via .open arg 
    $fh.nl-in = [<foo bar>]; # set two possible line endings to use; 
    $fh.lines.say# OUTPUT: ("1", "2", "3").Seq 
}