Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

RE {4} Sorting on Section Numbers

by turnstep (Parson)
on Jul 28, 2000 at 21:27 UTC ( [id://24923]=note: print w/replies, xml ) Need Help??


in reply to RE: RE: Re: Sorting on Section Numbers
in thread Sorting on Section Numbers

> it works the same way, but I substituted in a Schwartzian transform to cache the original
> value of the heading instead of unpacking it again later. According to some tests with
> Benchmark, it's about 40% faster than doing the unpack later. Plus it keeps letters intact.

Unfortunately, there are two problems with this code:

@sorted = map {$_->[0], ", "} sort { $a->[0] <=> $b->[0]} map {[$_, pack ("N*", $_)]} @unsorted;

First, the map arguments should be reversed or the sort subscripts should be "1" not "0". As it is, all the code does is a simple sort, and ignores the whole pack part! Second, even when it is fixed, it does not quite sort correctly:

@unsorted = qw(2 1.2a 2.2 1.2 1.1a); ## A fixed version: @sorted = map {$_->[0], ", "} sort { $a->[1] <=> $b->[1]} map {[$_, pack ("N*", $_)]} @unsorted; print @sorted, "\n"; ## produces: 1.2a, 1.1a, 1.2, 2, 2.2

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2024-03-28 12:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found