Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Sorting Hash / Array

by kcott (Chancellor)
on May 16, 2012 at 18:00 UTC ( #970882=note: print w/replies, xml ) Need Help??

in reply to Sorting Hash / Array

Here's one way of doing it.

#!/usr/bin/env perl use strict; use warnings; my $VAR1 = { '127' => { 'network' => '', 'VLAN' => '3509' }, '32' => { 'network' => '', 'VLAN' => '2121' }, '90' => { 'network' => '', 'VLAN' => '3494' } }; my @sorted_keys = sort { $VAR1->{$a}{network} cmp $VAR1->{$b}{network} } keys %$VA +R1; print qq{Key\tNetwork\t\t\tVLAN\n}; for my $key (@sorted_keys) { print qq{$key\t}, $VAR1->{$key}{network}, qq{\t\t}, $VAR1->{$key}{VLAN}, qq{\n}; }

Here's the output:

$ Key Network VLAN 32 2121 127 3509 90 3494

-- Ken

Replies are listed 'Best First'.
Re^2: Sorting Hash / Array
by johngg (Abbot) on May 16, 2012 at 20:05 UTC

    What happens if you add another network to the hashref with the address 10.19,72.0/25? That will sort lexically after the others even though in numerical network order it should come first!

    You need to convert the address (excluding the netmask) into something that will produce the right result when sorting lexically. The Socket module provides inet_aton() to achieve this.



Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://970882]
stevieb is writing a little CUFP on how to control analog pins on an arduino from a Linux machine via I2C in light of Perl, JavaScript and Strandbeests. It also is a good real-world use-case to test my I2C dist.
[stevieb]: I just don't feel like going hardcore on anything today, so I thought I'd *use* my software instead of just write it

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2017-07-21 23:20 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (336 votes). Check out past polls.