First of all, don't load an entire file into an array unless you have a good reason. (There may be a good reason in this case, but I can't tell for sure.) Instead, read and process it line-by-line. The usual method is:

open my $fd, '<', $file or die "Can't open file: $!"; while(my $line = <$fd>){ # do stuff with line in $line }

Now, when you're parsing stuff out of a line, there are two common methods. If you have a bunch of ordered fields separated by a known delimiter, you can split the line on that delimiter. (An aside: sometimes in these cases a CSV module is very useful.) On the other hand, if you are picking out particular strings and data that happens to be near/between them, a regex may be your best bet. (Looking at your data, I suspect a regex wins here.) Examples of the two:

my @fields = split /\t/, $line; # split the line on tabs # or my( $threadnum ) = $line =~ /Thread-(\d+)/; # grab the digits followin +g Thread-

That should get you started on parsing out what you want. For help with the rest of what you talked about, it'd help to see before-and-after examples of what you're trying to do.

Aaron B.
Available for small or large Perl jobs; see my home node.


In reply to Re: Parsing a logfile. by aaron_baugher
in thread Parsing a logfile. by concept

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.