my %hash2; for my $key (sort {$hash1{$b} <=> $hash1{$a}} keys %hash1){ if (exists($hash2{$hash1{$key}})){ $hash2{$hash1{$key}}++; } else { $hash2{$hash1{$key}}=1; } }