On Jan 25, 6:43 pm, orasn...@gmail.com ("Octavian Rasnita") 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
Hi, Correct me that the "2" in the following means read? : my ( $label, $value ) = split /,/, $line, 2; -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/