Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re^2: Sort an array which contains date formatted elements

by johngg (Abbot)
on Jul 17, 2007 at 22:13 UTC ( #627146=note: print w/replies, xml ) Need Help??

in reply to Re: Sort an array which contains date formatted elements
in thread Sort an array which contains date formatted elements

I agree with your suggestion to use a ST but my preference would be to use a regex to pull out the month, day and year elements and do a three-way sort, greping only those filenames that match.

use strict; use warnings; my %months; @months{qw{ jan feb mar apr may jun jul aug sep oct nov dec}} = 0 .. 11; my $rxWanted; { local $" = q{|}; $rxWanted = qr {(?x) \A webadmin _(@{ [ keys %months ] }) _(\d\d?) _(\d{4}) \.log \z }; } print map { qq{$_->[0]\n} } sort { $a->[3] <=> $b->[3] || $months{$a->[1]} <=> $months{$b->[1]} || $a->[2] <=> $b->[2] } grep { defined $_->[1] } map { chomp; [ $_, m{$rxWanted} ] } <DATA>; __END__ . .. webadmin_jul_10_2007.log webadmin_jul_11_2007.log webadmin_jul_12_2007.log webadmin_jul_13_2007.log webadmin_jul_14_2007.log webadmin_jul_7_2007.log webadmin_jul_8_2007.log webadmin_jul_9_2007.log user.log

The output is as yours.



Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://627146]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2017-05-24 00:37 GMT
Find Nodes?
    Voting Booth?