Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Numeric sorting WITHOUT <=>

by BillKSmith (Priest)
on Oct 10, 2012 at 03:31 UTC ( #998121=note: print w/replies, xml ) Need Help??

in reply to Numeric sorting WITHOUT <=>

Here is one bad way to do it! No comparisons at all.

use strict; use warnings; my %jetsons = ( 7 => 'Judy', 10 => 'Jane', 11 => 'George', 2 => 'Elroy', 100=> 'Rosey', 1 => 'Astro', 19 => 'Mr. Spacely', 22 => 'Mr. Cogswell' ); for my $i (0..100) { print "$i => $jetsons{$i}\n" if exists $jetsons{$i}; }

Replies are listed 'Best First'.
Re^2: Numeric sorting WITHOUT <=>
by Anonymous Monk on Oct 10, 2012 at 03:48 UTC

    One may not know the minimum & maximum values without inspecting to use range operator, so ...

    use strict; use warnings; use List::MoreUtils 'minmax'; my %hash = ( ... ); # Absurdity is to find end values in order to avoid # numeric comparison. my ( $min , $max ) = minmax keys %hash; for my $i ( $min .. $max ) { ... }
Re^2: Numeric sorting WITHOUT <=>
by Marshall (Monsignor) on Oct 10, 2012 at 04:05 UTC
    Yes, this is indeed a "bad way" to do it! Compared with sort(), this will be slow (20..99) yield no result and it doesn't scale well. And I guess that you would in the general case, have to read every key to find the maximum key value.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2016-10-27 11:01 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (359 votes). Check out past polls.