in reply to Collapsing IP addresses, an approach?
use strict; use warnings; my @ips = qw( 1.1.1.1 1.1.1.2 4.2.4.5 4.2.4.6 ); # Keep this many blocks my $n = 3; my $re = join "\\.", ("\\d+") x $n; $re = qr/^($re)/; my %collapsed; for (@ips) { if ( /$re/ ) { $collapsed{$1}++; } else { warn "Bad ip [$_] or # of blocks [$n]\n"; } } my $zero = join ".", ("0") x ( 4-$n ); print "$_.$zero\n" for keys %collapsed;
|
|---|