Pathologically Eclectic Rubbish Lister 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

Replies are listed 'Best First'.
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.

Create A New User
Domain Nodelet?
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 studying the Monastery: (7)
As of 2023-03-27 13:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Which type of climate do you prefer to live in?

Results (65 votes). Check out past polls.

Notices?