Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Sorting Question

by boerni (Novice)
on Nov 13, 2018 at 17:41 UTC ( #1225734=perlquestion: print w/replies, xml ) Need Help??

boerni has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks
I have a sorting question:
This Code behaves strangely:
use strict; use warnings; use Data::Dumper; my @vals = (5, 5.71428571428571); for (1 .. 10) { my $hsh; for my $k (@vals) { $hsh->{$k} = 1; } my @sorted = sort {$hsh->{$b} <=> $hsh->{$a}} keys %$hsh; print "$_: " . Dumper (\@sorted); } exit 0;
prints:
1: $VAR1 = [ '5.71428571428571', '5' ]; 2: $VAR1 = [ '5.71428571428571', '5' ]; 3: $VAR1 = [ '5.71428571428571', '5' ]; 4: $VAR1 = [ '5.71428571428571', '5' ]; 5: $VAR1 = [ '5', '5.71428571428571' ]; 6: $VAR1 = [ '5.71428571428571', '5' ]; 7: $VAR1 = [ '5', '5.71428571428571' ]; 8: $VAR1 = [ '5', '5.71428571428571' ]; 9: $VAR1 = [ '5', '5.71428571428571' ]; 10: $VAR1 = [ '5', '5.71428571428571' ];

As you can see, the sorted values are not consistent. What do I miss?
Thank you in advance

Replies are listed 'Best First'.
Re: Sorting Question
by LanX (Sage) on Nov 13, 2018 at 17:44 UTC
    you are sorting keys - which are strings - numerically?

    wait got it, you are comparing the values which are always 1.

    for my $k (@vals) { $hsh->{$k} = 1; }

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

      Doh! Thanks Rolf!!!!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2022-08-11 16:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?