-------inp.txt-------- 1 196 1 190 1 200 2 20 3 25 3 19 3 39 4 40 4 41 4 45 #### use strict; use warnings; my $in_file = 'inp.txt'; open (IN, $in_file)|| die "couldn't open the in_file\n"; my %r; while () { chomp; my $line = $_; my @f = split(/\t/, $line); push(@{ $r{$f[0]} }, $f[1]); } close IN; my @scores =(); my $count; my $i; foreach my $key (sort keys %r) { #print "$key\t"; @scores = @{ $r{$key} }; $count = scalar @scores; #print "@scores[0..$count]\n"; my $sum = 0; #for($i=0; $i <=@scores; $i++) for $i (0..$count) { $sum += $scores[$i]; } my $avg = ($sum/$count); print "$key\t$count\t$avg\n"; }