in reply to Reading a huge input line in parts
How about reading a block at a time and spliting that?:
sub genBufferedGetNum { my @buf = do{ local $/ = \4096; split ' ', scalar <>; } my $leftover = pop @buf; return sub { unless( @buf ) { unless( eof ) { @buf = do{ local $/ = \4096; split ' ', $leftover . <> + }; $leftover = pop @buf; } else { die 'premature eof' if $leftover != 0; return $leftover; # last number } } return shift @buf; }; } my $getNum = genBufferedGetNum(); while( my $num = getNum->() ) { ## do stuff }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Reading a huge input line in parts (Handles multi-digit numbers!)
by GotToBTru (Prior) on May 04, 2015 at 19:19 UTC | |
by BrowserUk (Patriarch) on May 04, 2015 at 22:37 UTC |