Matthias Bethke > Net-CIDR-Lookup > lib/Net/CIDR/Lookup/Changes.pod


Annotate this POD


Open  0
View/Report Bugs


Fixed a long-standing bug on pure 32-bit perls (i.e. on 32-bit systems that don't use Perl's software support for 64-bit integers) that would cause "Modification of non-creatable array value attempted" errors. Counterintutitively, the ternary operator even seems slightly faster than the bit-shifting it replaces now.
Fixed to_hash() that the change to iterative tree walking had broken. Yes, there are tests for it, too now.
Dropped the redundant address parsing/printing code in favor of Socket functions.

Attention: Breaking Changes!

This version removes the global $errstr variable and switches to the same interface as Net::CIDR::Lookup::IPv6 that signals errors using exceptions. So all menthods but new may now die if you don't wrap them in evalor equivalent.
dump is called more sensibly to_hash now.

Regular changes that shouldn't break anything:

Replaced the recursive implementations of lookup() and walk() with iterative ones for about a 30% speed increase.
Moved version history to its own POD file
v0.41 Version bump to sync with IPv6 version
v0.4 Version bump for inclusion of the IPv6 version
Replaced the simplistic list-based CIDR block splitting function with bit-fiddling for about a threefold speedup of add_num_range and slightly less in add_range.
Recursive merging-up up of blocks during add_* works now. If e.g. you had a /24 and an adjacent /25 net with the same value before, adding a new /25 would have merged the new block with the existing /25, resulting in two adjacent /24s with the same value because only single-level merging was possible. Now the two will be merged to a single /23.
Removed some redundant tests and added new ones.
Removed some leftover debug code.
Some small fixes/improvements like stricter range checking in add_range
v0.3 First CPAN release
syntax highlighting: