From: "dolphin" <[email protected]>
Hi,
I'm learning perl now and would like to find out how to perform the
following if given in a text file?
AAAA,12
AAAA,437
BBBB,124
CCCC,45
BBBB,789
AAAA,67
CCC,567
DDD,5
How to sum up the 2nd column based on the 1st column with the
following result:
AAAA:
BBB:
CCC:
DDD:
Thanks in advance.
You need to read the file line by line:
use strict;
use warnings;
my %items; #The hash with labels and their corresponding sums
open my $file, '<', 'file_name' or die $!;
while ( my $line = <$file> ) {
# Here split the line:
my ( $label, $value ) = split /,/, $line, 2;
# Then add each value for its corresponding label:
$items{$label} += $value;
}
close $file;
# Here print the sorted hash of items:
for my $label ( sort keys %items ) {
print "$label: $items{$label}\n";
}
HTH.
Octavian
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/