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/


Reply via email to