Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: Sorting Hash / Array

by nickt9999 (Acolyte)
on May 17, 2012 at 16:09 UTC ( [id://971102]=note: print w/replies, xml ) Need Help??


in reply to Re: Sorting Hash / Array
in thread Sorting Hash / Array

Hi Chris

I Have a bit of an issue in that it doesn't seem to sort subnets correctly.

10.182.8.0/26 10.182.8.0/21 10.182.8.64/26 10.182.8.128/26 10.182.8.192/26
10.182.32.0/24 10.182.32.0/19 10.182.33.0/24

I would expect 10.182.8.0/21 to be before 10.182.8.0/26

Could you help?

Thanks

Nick

Replies are listed 'Best First'.
Re^3: Sorting Hash / Array
by johngg (Canon) on May 21, 2012 at 09:45 UTC

    Split the network and netmask into separate terms and sort on netmask within network.

    knoppix@Microknoppix:~$ perl -MSocket -Mstrict -wE ' my @networks = qw{ 10.182.8.0/26 10.182.8.0/21 10.182.8.64/26 10.182.8.128/26 10.182.8.192/26 }; say for map { $_->[ 0 ] } sort { $a->[ 1 ] cmp $b->[ 1 ] || $a->[ 2 ] <=> $b->[ 2 ] } map { my( $network, $netmask ) = split m{/}; [ $_, inet_aton( $network ), $netmask ]; } @networks;' 10.182.8.0/21 10.182.8.0/26 10.182.8.64/26 10.182.8.128/26 10.182.8.192/26 knoppix@Microknoppix:~$

    I hope this is helpful.

    Cheers,

    JohnGG

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (9)
As of 2024-04-18 11:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found