The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use NetAddr::IP::Lite;

my $nets = {
    '10.0.0.16'		=> [ 24, '10.0.0.255', '10.0.0.0' ],
    '127.0.0.1'		=> [ 8, '127.255.255.255', '127.0.0.0' ],
    '192.168.0.10'	=> [ 17, '192.168.127.255', '192.168.0.0' ],
};

$| = 1;
print "1..", (2 * scalar keys %$nets), "\n";

my $count = 1;

for my $a (keys %$nets) {
    my $ip = new NetAddr::IP::Lite $a, $nets->{$a}->[0];
    print '', (($ip->broadcast->addr	ne $nets->{$a}->[1] ?
	    'not ' : ''),
	   "ok ", $count++, "\n");
    print '', (($ip->network->addr		ne $nets->{$a}->[2] ?
	    'not ' : ''),
	   "ok ", $count++, "\n");
}