#!/usr/bin/perl -w use strict; my %hash = qw ( a 2 b 4 c 2 d 1 e 1 f 2 g 4 h 3 i 8 j 10 k 10 ); my @values = sort{$a<=>$b}values(%hash); my $max = (@values)[-1]; my @pegs = (0) x ($max); for my $value ( @values ) { $pegs[ $value ]++; } for my $peg_num (0..@pegs-1) { print "$peg_num \t=> $pegs[$peg_num]\n"; } __END__ Prints: 0 => 0 1 => 2 2 => 3 3 => 1 4 => 2 5 => 0 6 => 0 7 => 0 8 => 1 9 => 0 10 => 2