http://www.perlmonks.org?node_id=511387

josephjohn has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I am new to perl and need help in sorting dates. I have a text file with 50000 lines. One column is date in the format D/M/YYYY. I'm reading the file and making a hash for the date count. I would like to sort these dates before displaying them finally. I tried converting this to DD/MM/YYYY using regular expression but this obviously dosent work. I guess converting the date to YYYY/MM/DD, sorting and converting back is not a good idea also. I havent worked with date modules and can someone suggest which one to use Date::Calc or Date::Manip and how to use them with hash in my case. Thanks in advance. Joseph
foreach my $line (@file) { my @fields = split(/,/, $line); if ($fields[6] !~ /\d{2}\/\d{2}\/\d{4}/) { @tempdate = split(/\//, $fields[6]); if ($tempdate[0] < 10) { $newdate = "0" . $tempdate[0] . "/"; } else { $newdate = $tempdate[0] . "/"; } if ($tempdate[1] < 10) { $newdate = $newdate . "0" . $tempdate[1] . "/"; } else { $newdate = $newdate . $tempdate[1] . "/"; } $fields[6] = $newdate . $tempdate[2]; } $datecount{$fields[6]}++; } foreach my $date (sort(keys(%datecount))) { print "\n", $date, ": ", $datecount{$date}; }