in reply to Is there an easier way?

Personally I prefer to convert all dates to an "offset from an epoch" and do all operations on them that way. Only converting back to "display format" when I'm done.

Keeping in line with your basic logic I'd probably parse as follows:

sub isGreater{ my $currDate = shift; my $oldDate = shift; my ($currMonth,$currDay,$currYear) = split /\//,$currDate; my ($oldMonth,$oldDay,$oldYear) = split /\//,$oldDate; return $currYear <=> $oldYear or $currMonth <=> $oldMonth or $currDa +y <=> $oldDay; }