use strict; use warnings; my %data; while () { chomp; my ($id, $value) = split /,/; $data{$id}{sum} += $value; $data{$id}{count}++; } for my $id (sort keys %data) { my $avg = $data{$id}{sum}/$data{$id}{count}; print "$id: sum=$data{$id}{sum} avg=$avg\n"; } __DATA__ A,10 A,11 A,12 A,13 B,15 B,16 C,17 D,18 #### A: sum=46 avg=11.5 B: sum=31 avg=15.5 C: sum=17 avg=17 D: sum=18 avg=18