$line { say $_; -6ren">
gpt4 book ai didi

while-loop - Raku,Perl 的 5 `<>` 在哪里?

转载 作者:行者123 更新时间:2023-12-03 18:47:04 25 4
gpt4 key购买 nike

我正在进一步使用 Raku 的 CommaIDE,我想逐行打印一个二进制文件。
我试过这个,但它不起作用:

for "G.txt".IO.lines -> $line {
say $_;
}
我该如何解决?这显然是不正确的。
编辑
这也不起作用,请参阅下面的代码段
for "G.txt".IO.lines -> $line {
say $line;
}
enter image description here

最佳答案

问题特指阅读一篇二进制 文件,根据文件,逐行读取可能(或可能不)有意义。
这是读取 的代码二进制 直接从文档中获取文件(使用 IO::CatHandle ):

~$ raku -e '(my $f1 = "foo".IO).spurt: "A\nB\nC\n"; (my $f2 = "foo"); with IO::CatHandle.new: $f2 {.encoding: Nil; .slurp.say;};'
Buf[uint8]:0x<41 0A 42 0A 43 0A>
与使用默认编码( utf8 )读取文件进行比较:
~$ raku -e '(my $f1 = "foo".IO).spurt: "A\nB\nC\n"; (my $f2 = "foo"); with IO::CatHandle.new: $f2 {.slurp.say;};'
A
B
C
看:
https://docs.raku.org/routine/encoding
注: read方法使用 类(class) IO::Handle默认情况下读取二进制文件。所以代码很简单:
~$ raku -e '(my $file1 = "foo".IO).spurt: "A\nB\nC\n"; my $file2 = "foo".IO; given $file2.open { .read.say; .close;};'
Buf[uint8]:0x<41 0A 42 0A 43 0A>
看:
https://docs.raku.org/type/IO::Handle#method_read
如需进一步阅读,请参阅 Perl5 的讨论 <> Raku中的diamond-operator-equivalent:
https://docs.raku.org/language/5to6-nutshell#while_until
...以及一些(较旧的)邮件列表讨论相同的内容:
https://www.nntp.perl.org/group/perl.perl6.users/2018/11/msg6295.html
最后,文档提到在此处编写混合 utf8/二进制文件(用于进一步测试):
https://docs.raku.org/routine/encoding#Examples

关于while-loop - Raku,Perl 的 5 `<>` 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67777736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com