@sortedip = map {
"$$_[0].$$_[1].$$_[2]$$_[3]"
} sort {
($$a[0] <=> $$b[0]) or
($$a[1] <=> $$b[1]) or
($$a[2] <=> $$b[2]) or
($$a[3] <=> $$b[3])
} map {
/(\d+)[.](\d+)[.](\d+)[.](\d+)/;
[$1, $2, $3, $4]
} @ip;
####
@sorted = sort {
($$a[0] <=> $$b[0]) or
($$a[1] <=> $$b[1]) or
($$a[2] <=> $$b[2]) or
($$a[3] <=> $$b[3])
} map {
/(\d+)[.](\d+)[.](\d+)[.](\d+)/;
[$1, $2, $3, $4]
} @ip;
my $previous = []; my @range = ();
for $current (@sorted, [260, 0, 0, 0]) {
if (greaterbyone($previous,$current) {
$$previous[4] = $$current[3];
} else {
push @range, $previous;
$previous = $current;
}
####
$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$ ;->();print$/