Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

(RhetTbull) Re: Sorting comma-delimited records

by RhetTbull (Curate)
on May 31, 2002 at 18:02 UTC ( #170792=note: print w/ replies, xml ) Need Help??


in reply to Sorting colon-delimited records

First of all, those are colons, not semicolons. ;-) Sounds like a good place for a Schwartzian Transform by our own merlyn:

#!/usr/bin/perl use strict; use warnings; my @data = <DATA>; chomp @data; my @sorted = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [ $_, (split /:/)[1] ] } @data; print "data = \n@data\n"; print "sorted = \n@sorted\n"; __DATA__ area1:place1:name1 area1:place4:name2 area3:place3:name3 area5:place2:name2
Produces:
data = area1:place1:name1 area1:place4:name2 area3:place3:name3 area5:place2: +name2 sorted = area1:place1:name1 area5:place2:name2 area3:place3:name3 area1:place4: +name2
Update:For more information on the Schwartzian Transform, read Tom Christiansen's "Far More Than Everything You've Ever Wanted To Know About Sorting" paper.
Update 2:Changed example data to make it more obvious what was going on.


Comment on (RhetTbull) Re: Sorting comma-delimited records
Select or Download Code
Re: (RhetTbull) Re: Sorting comma-delimited records
by venki (Acolyte) on May 31, 2002 at 18:33 UTC
    thanks. Great help! I really appreciate your timely help guys

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://170792]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (10)
As of 2015-07-06 09:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (71 votes), past polls