more useful options PerlMonks

### Re^2: Sorting integer value hash keys

 on Dec 25, 2009 at 18:53 UTC ( #814364=note: print w/replies, xml ) Need Help??

in reply to Re: Sorting integer value hash keys
in thread Sorting integer value hash keys

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 }}

Replies are listed 'Best First'.
Re^3: Sorting integer value hash keys
by ikegami (Pope) on Dec 25, 2009 at 19:25 UTC
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.

I think that you're mistaken—say (as opposed to print) provides it for me.

Oops, right

but then I would have had to point out that sort { \$a <=> \$b } 1..10 could be replaced by just 1..10,

That wouldn't demo how to sort 10 after 9 rather than before 2.

That wasn't my goal, largely because I'm not sure what you mean.

The OP suspected that hashes keys are always strings and that stringification of the keys was the cause of his problem.

Hash keys are always strings (except for magical hashes), but that's not the cause of his problem. Perl treats the number zero and the string zero identically (except for its bitwise operators).

(I'm sure you know that. It's for the OP's benefit.)

Create A New User
Node Status?
node history
Node Type: note [id://814364]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2021-04-16 21:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?