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/


Reply via email to