use List::Util 'sum'; my %collect; for my $i ( 0 .. $#@sequences ) { push @{ $collect{ $sequences[ $i ] } }, $numbers[ $i ]; } for my $sequence ( keys %collect ) { my $avg = ( sum @{$collect{$sequence}} )/@{$collect{$sequence}}; printf "sequence: $sequence = %.1f\n", $avg; }