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/


Reply via email to