I asked this question on the chatterbox, and it provoked a flurry of interesting responses -- seven or eight different ones from tye alone! -- so I thought I might post it and see what monks came up with.

Problem -- I have a file. I want to read it in four-line chunks, because it goes

name1 address1 phone1 fax1 name2 address2 phone2 fax2
and so on.

Solution? My first one was to slurp and then do like this:

for($i=0;$<scalar(@slurpedarray);$i+=4){ # work with $slurpedarray[$i], $slurpedarray[($i+1)], # $slurpedarray[($i+2)] and $slurpedarray[($i+2)] }
which makes me wince to look at it.

Now I'm going to do it with the much more Perlish

while(@slurpedarray){ ($name,$address,$phone,$fax) = splice(@slurpedarray,0,3) # work with nice named vars }

Interesting bit: all these solutions are based on whole-file slurpage (fine for me, very small files) but the interesting solutions were the ones which didn't do that, the ones for actually reading the file itself.

Any interesting solutions? (Stands back...)
--

“Every bit of code is either naturally related to the problem at hand, or else it's an accidental side effect of the fact that you happened to solve the problem using a digital computer.”
M-J D

In reply to Read File In Four-Line Chunks / TMTOWTDI / Golf by Cody Pendant

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.