Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Sorting integer value hash keys

by gube (Parson)
on Dec 25, 2009 at 18:08 UTC ( #814363=note: print w/ replies, xml ) Need Help??


in reply to Sorting integer value hash keys

#!/usr/bin/perl my %statistics = ( 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0 ); foreach my $statistic (sort {$a <=> $b} keys %statistics) { print $statistic ." ".$statistics{$statistic}. "\n"; } Output: 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0


Comment on Re: Sorting integer value hash keys
Download Code
Re^2: Sorting integer value hash keys
by JadeNB (Chaplain) on Dec 25, 2009 at 18:53 UTC
    Sorry, I can't resist:
    my %statistics; undef @statistics{ 1..10 }; # or @statistics{ 1..10 } = (0) x 10 say join "\n", sort { $a <=> $b } keys %statistics;
    or, if you don't need a name and like the 0 values:
    say join "\n", sort { $a <=> $b } keys %{{ map { $_ => 0 } 1..10 }}
      You're missing a newline on the last line.
      say join "\n", sort { $a <=> $b } keys %{{ map { $_ => 0 } 1..10 }}
      should becan be shortened to
      say for sort { $a <=> $b } keys %{{ map { $_ => 0 } 1..10 }}
      Furthermore, since you assume the list is constant, that can be simplified to
      say for sort { $a <=> $b } 1..10;
      And if you wanted to show that stringification doesn't matter, the following would suffice:
      say for sort { $a <=> $b } map "$_", 1..10;
        You're missing a newline on the last line.
        I think that you're mistaken—say (as opposed to print) provides it for me.
        Furthermore, since you assume the list is constant, that can be simplified to
        say for sort { $a <=> $b } 1..10;
        Yes, you're right; I contemplated coming back and updating the node with that, but then I would have had to point out that sort { $a <=> $b } 1..10 could be replaced by just 1..10, and that seemed to be going too far. :-)
        And if you wanted to show that stringification doesn't matter
        That wasn't my goal, largely because I'm not sure what you mean. UPDATE: Because I was too busy writing one-liners to read the OP's actual question; sorry.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2014-10-23 06:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (124 votes), past polls