in reply to Reading chunks of text

Is there anything more I can do?

Yes, there is.

while (my @a = grep defined, map scalar <$fd>, 1 .. 6) { # do whatever you want with @a, which has 6 lines }

I asked a similar question, two years ago.