Håk*_*and 5 grammar perl6 raku
假设您只想使用Perl 6语法解析大文件的开头.为了避免将整个文件读入一个字符串,然后调用subparse该字符串.阅读文件时是否可以进行子搜索?
我subparsefile()在Grammar课堂上找不到任何方法,所以我觉得这很难实现.但理论上应该是可能的,例如,如何在不将整个文件读入内存的情况下搜索文件中的多行模式?
目前你不能.此刻解析任何内容都需要整个字符串存在于内存中.
话虽如此,如果您知道模式可能扩展的最大行数,您可以执行以下操作:
my $max = 3; # maximum number of lines
for "textfile".IO.lines(:!chomp).rotor( $max => -$max + 1 ) -> @lines {
@lines.join.subparse( $grammar)
# and whatever you would like to do
}
Run Code Online (Sandbox Code Playgroud)
它不是最快的方式,但它不必读取内存中的整个文件.