use warnings; use strict; my @dates = qw(02/01/2009 01/31/2009 01/01/2009 01/31/2009 02/20/2009 02/20/2009 02/20/2009 02/20/2009 02/01/2009 ); my %dates; $dates{$_}++ for @dates; print map { "$dates{$_} times $_\n" } sort { $dates{$b} <=> $dates{$a} } keys %dates;