in reply to Hash sorting with dates and 12 hour time format.
my @sorted_keys = map substr($_, 10), sort map sprintf('%02d%02d%5$s%02d%02d', m{(\d+)/(\d+) \@ (\d+):(\d+) (AM|PM)}) . $_ keys(%line_data);
Update: Oops, I knew my AM/PM handling was wrong. Fixed:
my @sorted_keys = map substr($_, 10), sort map { my ($m,$d,$H,$M,$ampm) = m{(\d+)/(\d+) \@ (\d+):(\d+) (AM|PM)}; $H %= 12; sprintf('%02d%02d%s%02d%02d%s', $m,$d,$ampm,$H,$M, $_) } keys(%line_data);
|
|---|