in reply to Sort on Number Embedded in String
There's probably a more elegant way, but this works.
@files = sort { my ($ad) = ( $a =~ /fwlog\.(\d+)\w+/ ); my ($bd) = ( $b =~ /fwlog\.(\d+)\w+/ ); $ad <=> $bd } @files; print join "\n", @files; OUTPUT: fwlog.1Mar2005.gz fwlog.2Mar2005.gz fwlog.3Mar2005.gz fwlog.4Mar2005.gz fwlog.5Mar2005.gz fwlog.6Mar2005.gz fwlog.7Mar2005.gz fwlog.8Mar2005.gz fwlog.9Mar2005.gz fwlog.14Mar2005.gz fwlog.15Mar2005.gz fwlog.16Mar2005.gz fwlog.17Mar2005.gz fwlog.18Mar2005.gz fwlog.19Mar2005.gz fwlog.20Mar2005.gz fwlog.21Mar2005.gz
Update: I'm dumbfounded that so many have reccomended the Schwartzian for such a trivial sorting operation. Is the added complexity worth it for sorting such a small amount of data? Neither [id://JediWizard]'s nor [id://Tanktalus]'s code appear to even work correctly. (See Readmore). This is a case of over-zealous premature optimization if I've ever seen it.
Up-Update:Typos.
JediWizard's output:
fwlogfwlog.14Mar2005.gz.Mar2005 fwlogfwlog.15Mar2005.gz.Mar2005 fwlogfwlog.16Mar2005.gz.Mar2005 fwlogfwlog.17Mar2005.gz.Mar2005 fwlogfwlog.18Mar2005.gz.Mar2005 fwlogfwlog.19Mar2005.gz.Mar2005 fwlogfwlog.1Mar2005.gz.Mar2005 fwlogfwlog.20Mar2005.gz.Mar2005 fwlogfwlog.21Mar2005.gz.Mar2005 fwlogfwlog.2Mar2005.gz.Mar2005 fwlogfwlog.3Mar2005.gz.Mar2005 fwlogfwlog.4Mar2005.gz.Mar2005 fwlogfwlog.5Mar2005.gz.Mar2005 fwlogfwlog.6Mar2005.gz.Mar2005 fwlogfwlog.7Mar2005.gz.Mar2005 fwlogfwlog.8Mar2005.gz.Mar2005 fwlogfwlog.9Mar2005.gz.Mar2005
And Tanktalus's:
fwlog.9Mar2005.gz fwlog.8Mar2005.gz fwlog.7Mar2005.gz fwlog.6Mar2005.gz fwlog.5Mar2005.gz fwlog.4Mar2005.gz fwlog.3Mar2005.gz fwlog.2Mar2005.gz fwlog.21Mar2005.gz fwlog.20Mar2005.gz fwlog.1Mar2005.gz fwlog.19Mar2005.gz fwlog.18Mar2005.gz fwlog.17Mar2005.gz fwlog.16Mar2005.gz fwlog.15Mar2005.gz fwlog.14Mar2005.gz
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Sort on Number Embedded in String
by Dru (Hermit) on Mar 22, 2005 at 19:51 UTC | |
by Mugatu (Monk) on Mar 22, 2005 at 21:09 UTC | |
Re^2: Sort on Number Embedded in String
by crenz (Priest) on Mar 24, 2005 at 13:43 UTC |
In Section
Seekers of Perl Wisdom