7st*_*tud 6 io file perl6 raku
data.txt中:
hello world
goodbye mars
goodbye perl6
hello perl5
Run Code Online (Sandbox Code Playgroud)
myprog.py:
my $fname = 'data.txt';
my $infile = open($fname, :r, nl => "\n\n");
for $infile.lines(nl => "\n\n") -> $para {
say $para;
say '-' x 10;
}
Run Code Online (Sandbox Code Playgroud)
实际产量:
hello world
----------
goodbye mars
----------
----------
goodbye perl6
----------
back to perl5
----------
Run Code Online (Sandbox Code Playgroud)
期望的输出:
hello world
goodbye mars
-----------
goodbye perl6
back to perl5
-----------
Run Code Online (Sandbox Code Playgroud)
...
$ perl6 -v
This is perl6 version 2015.03-21-gcfa4974 built on MoarVM version 2015.03
Run Code Online (Sandbox Code Playgroud)
这似乎是Rakudo/MoarVM中的一个错误,回到MoarVM期望单个字形作为分隔符而不是任意字符串的事实(cf syncfile.c:38,syncfile.c:119和syncfile.c:91,显示使用分隔符字符串的最后一个字符而不是整个字符串).
作为一种快速解决方法(但要注意这会将整个文件读入内存),请使用
$fname.IO.slurp.split("\n\n")
Run Code Online (Sandbox Code Playgroud)
而不是$infile.lines().
#perl6如果这是一个已知问题,您还应该提交错误报告或询问Freenode.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |