my @dates = ( '2011-04-09', '2011-03-12', '2010-12-31', '2010-12-30'); my @sorted_dates = sort { (split /\-/, $a)[0] <=> (split /\-/, $b)[0] || (split /\-/, $a)[1] <=> (split /\-/, $b)[1] || (split /\-/, $a)[2] <=> (split /\-/, $b)[2] } @dates; my $max_date = @sorted_dates[-1]; print "$max_date";