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?
>>
>

Reply via email to