http://www.perlmonks.org?node_id=1157904


in reply to Re^4: How do you sort keys of a hash in descending order and print 3 per line?
in thread How do you sort keys of a hash in descending order and print 3 per line?

c:\@Work\Perl\monks>perl -wMstrict -e "my %accounts = ( tom => \"BigApple\", tom2 => \"BigApple2\", tom3 => \"BigApple3\", tom4 => \"BigApple4\", tom5 => \"BigApple5\", tom6 => \"BigApple6\", tom7 => \"BigApple7\", ); my $counter = 1; for my $userID (reverse sort keys %accounts) { print \"$userID\t\"; print \"\n\" if $counter++ % 3 == 0; } " tom7 tom6 tom5 tom4 tom3 tom2 tom
There's a lot of command line "noise" from having to escape all the double-quotes for Windose, but that's exactly the code I ran and its output: otherwise exactly the code bangor posted. What is the code you are running?


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^6: How do you sort keys of a hash in descending order and print 3 per line?
by Marshall (Canon) on Mar 17, 2016 at 12:03 UTC
    I tested this on my WinXP 32 bit machine. It works fine. Something is wrong with your command line, what I don't know. But there is no fundamental need to escape the " characters. A side effect of a Windoze command line could be true.
    #!/usr/bin/perl use warnings; use strict; my %accounts = ( tom => "BigApple", tom2 => "BigApple2", tom3 => "BigApple3", tom4 => "BigApple4", tom5 => "BigApple5", tom6 => "BigApple6", tom7 => "BigApple7", ); # sort the users in descending order my $counter = 1; for my $userID (reverse sort keys %accounts) { print "$userID\t"; print "\n" if $counter++ % 3 == 0; } __END__ Prints: tom7 tom6 tom5 tom4 tom3 tom2 tom