On Tue, Jan 25, 2011 at 2:43 AM, Octavian Rasnita <orasn...@gmail.com> wrote: > From: "dolphin" <yc282...@yahoo.com.sg> >> >> 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: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > >
Thanks Octavian. I'm also new to Perl and yours was a very simple and useful explanation. Cheers, Mariano -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/