Yes, you can call .comb on a file handle (which I hadn't realized) and if you give it an integer as first argument, that treats it as a chunk size... So stuff like this seems to work fine:
my $fh = $file.IO.open; my $chunk_size = 1000; for $fh.comb( $chunk_size ) -> $chunk { say $chunk.chars; # 10000 say "~~~>>>", $chunk, "<<<<~~~"; } But I see you tossed in the caveat "Assuming it is a text file": is there a problem if it's some other type of file? On 10/20/19, Brad Gilbert <b2gi...@gmail.com> wrote: > Assuming it is a text file, it would be `.comb(512)` > > On Sun, Oct 20, 2019 at 4:39 PM Joseph Brenner <doom...@gmail.com> wrote: > >> I was just thinking about the case of processing a large file in >> chunks of an arbitrary size (where "lines" or "words" don't really >> work). I can think of a few approaches that would seem kind-of >> rakuish, but don't seem to be built-in anywhere... something like a >> variant of "slurp" with an argument to specify how much you want to >> slurp at a time, that'll move on to the next chunk the next time it's >> invoked... >> >> Is there anything like that kicking around that I've missed? >> >