in reply to Re: Reading files n lines a time
in thread Reading files n lines a time

Perhaps marginally nicer, the kite operator:

while(( my @lines = map ~~<>, 1 .. 4 )[0]) { print @lines; print "\n"; }
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Replies are listed 'Best First'.
Re^3: Reading files n lines a time
by mbethke (Hermit) on Dec 06, 2012 at 15:37 UTC

    Considering the OP deals with multi-GB files I'd prefer the slightly uglier assignment to $_ because the kite's tail is not optimized away so all the strings would actually be shoved through the binary negation twice.

    I was surprised by the result BTW when I looked at the optree; I'm almost completely clueless about what Perl can and cannot optimize but it even a fairly trivial peephole optimizer as in early C compilers could catch this.