in reply to Reading a huge input line in parts

I get a different result when using a space as the delimiter.

The zero at the end of the line gets recognized OK, but it is the first figure at the next line that gets skipped. So this small test program takes care of that problem:

use Modern::Perl qw/2014/; { local $/ = ' '; while (<DATA>) { chomp; if (/^0\n*$/) { say "0 - End of line"; next; } elsif (/^0\n(\d+)$/) { say "0 - End of line"; say ">$1<"; next; } else { say ">$_<"; } } } __DATA__ 1 34 282716 7 20 333333 91 0 23 68 82629172 112 8271718 102 1 0 7 211 2 123 0 99 666 0
Output:
>1< >34< >282716< >7< >20< >333333< >91< 0 - End of line >23< >68< >82629172< >112< >8271718< >102< >1< 0 - End of line >7< >211< >2< >123< 0 - End of line >99< >666< 0 - End of line
As you can see, a single zero is recognized as an end-of-line marker, even when not physically at the end of a line.

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

My blog: Imperial Deltronics