The simple command for the second step is split. Of course, depending on how complex the data is (whether the pipe character can be escaped and included in a field), you might have better luck with Text::CSV, Text::xSV, or even DBD::CSV. They should be ordered there by relative complexity.

Counting lines in a file is pretty easy, too. You can slurp them all into an array (if the file is small) and evaluate the array in scalar context. Otherwise, you can loop through the entire file, line by line, and use the special variable $.. The modules named above may have their own mechanisms for doing this.

Update: Stuff the results into an array, that way you won't have to worry about it. Otherwise, you can count the number of pipes in a line with the simple: my $numpipes = $line =~ tr/\|//;


In reply to Re: Getting info with a small flatfile db. by chromatic
in thread Getting info with a small flatfile db. by bladx

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.