Bakken, Luke wrote: > JupiterHost.Net wrote: >>>On Oct 3, JupiterHost.Net said: >>> >>>>I have a list of strings that start with an uppercase B, Q, or Z >>>> >>>>I need to sort them so they are in order of Q, B , then Z >>>> >>>>Any ideas or input on how to efficiently do that with sort() or even >>>>map() is most appreciated :) perldoc -f sort|-f map didn't appear to >>>>address this situation :( >>Jeff 'japhy' Pinyan wrote: >> >>>I would use map() before and after sort() to "correct" leading >>>characters. >>> >>> my @sorted = >>> map { tr/123/QBZ/; $_ } >>> sort >>> map { tr/QBZ/123/; $_ } >>> @data; >> >>Brilliant! I'll benchmark those ideas :) Thanks you two! > > Read this for an explanation of Jeff's solution: > > http://en.wikipedia.org/wiki/Schwartzian_transform
Actually Jeff's solution uses the Guttman-Rosler transform: http://www.sysarch.com/Perl/sort_paper.html John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>