in reply to Sorting an array by dates in a field...
If the date format is followed rigidly, with leading 0 for single digit months and days, then a simple alpha sort will work. Since you want reverse order, I'll show how to get that from the sort routine.
my @sorted = sort { $b->[0] cmp $a->[0] } @data;
The $b value is on the left to induce reverse order.
If the date format is not so rigidly observed, you can either rewrite it internally to conform to the format, or else do the sort the hard way. That uses a numerical comparison of years, if same then months if same then days:
my @sorted = sort { my @b = split '-', $b->[0]; my @a = split '-', $a->[0]; $b[0] <=> $a[0] || $b[1] <=> $a[1] || $b[2] <=> $a[2]; } @data;
Hope this helps.
After Compline,
Zaxo
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Sorting an array by dates in a field...
by yakoval (Novice) on Feb 13, 2010 at 09:25 UTC |