по нескольку строк за раз:
open F,"file" or die $!;
while (my @ary = map { <F> } 1..5) {
# process @ary
}
close F;
> cat > test
aaa
bbb
ccc
^C
> perl -e "open F,$ARGV[0]; while (my @a = map { <F> } 1..5) { chomp @a; printf ""[%s]\n""",join '+',@a; }" test
[aaa+bbb+ccc]
>