#!/usr/bin/perl -w use strict; my @array = qw( 1 info 1 info 1 info 2 info 3 info 3 info 4 info 4 info 4 info 4 info ); my %score; for (my $i=0;$i<$#array;$i+=2) { # get numbers from @array $score{ $array[$i] }++; # count the numbers } my %infos = @array; my @output = map { "$_\t$infos{$_}\n"; } sort { $score{$b} <=> $score{$a} } keys %score; print @output;