use NetAddr::IP; push @addresses, NetAddr::IP->new($_) for <DATA>; print join(", ", NetAddr::IP::compact(@addresses)), "\n"; __DATA__ 10.0.0.0/18 10.0.64.0/18 10.0.192.0/18 10.0.160.0/19