I think what you want is a hash-of-hashes data structure. The "outer" (main) hash would be keyed by the strings at the beginning of each line ("average1", "average2", etc). For each of those main hash elements, you have a sub-hash that stores the sum of values associated with the key string, and the number of times the key string occurred in the file.
Something like this would load that sort of hash, and then print summary values for each primary hash key:
my %stats;
while (<>) {
next unless ( /^(\w+):\s+([\d.]+)/ );
$stats{$1}{count}++;
$stats{$1}{sum} += $2;
}
printf( "%20s %5s %8s\n", "Name", "Count", "Average" );
for ( sort keys %stats ) {
printf( "%19s: %5d %8.2f\n", $_, $stats{$_}{count},
$stats{$_}{sum} / $stats{$_}{count} );
}
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.