use NetAddr::IP::Lite; $| = 1; my @deltas = (0, 1, 2, 3, 255); print "1..", 15 + @deltas, "\n"; my $count = 1; for (my $ip = new NetAddr::IP::Lite '10.0.0.1/28'; $ip < $ip->broadcast; $ip ++) { my $o = $ip->addr; $o =~ s/^.+\.(\d+)$/$1/; if ($o == $count) { print "ok $count\n"; } else { print "not ok $count\n"; } ++ $count; } my $ip = new NetAddr::IP::Lite '10.0.0.255/24'; $ip ++; if ($ip eq '10.0.0.0/24') { print "ok $count\n"; } else { print "not ok $count\n"; } ++$count; $ip = new NetAddr::IP::Lite '10.0.0.0/24'; for my $v (@deltas) { if ($ip + $v eq '10.0.0.' . $v . '/24') { print "ok $count\n"; } else { print "not ok $count\n"; } ++ $count; }