use strict; use warnings; my %baldata; while (defined(my $line = )) { next unless $line =~ /^FB/; my ($key,$value) = split /\,/, $line; $baldata{$key} += $value; } foreach my $key (keys %baldata) { print "$key => $baldata{$key}\n" } __DATA__ ID,Value FB208025,1629.01 FB208025,1201.16 FB091027,1257.66 FB091027,741.92 FB135022,11210.66 FB135022,3238.67 FB135022,3569.34 FB135022,5534.23