I'm looking for functionality similar to Net::Netmask's cidrs2contiglists() function, but one that creates a full tree (hash of hashes or array of arrays).
That is... given a set of subnets it will put them into a data structure based on whether or not a smaller subnet is "contained in" a larger subnet.
Leaves should be /32 subnets, then 30s, 29s, etc. The other issue being is that the subnets I'm using for input are sparsely populated. For example, we have /16s, then /24s, then /27s, and finally /32s.
Is there a module that can do a sort like this, or am I better off "rolling my own"?
Thanks.