Front page | perl.beginners |
Postings from January 2011
Re: Newbie queries
Thread Previous
|
Thread Next
From:
Octavian Rasnita
Date:
January 25, 2011 02:43
Subject:
Re: Newbie queries
Message ID:
381F87E70E674126A803C3AC7CC3B5BB@octavian
From: "dolphin" <yc282004@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
Thread Previous
|
Thread Next