use NetAddr::IP::Lite; my @subnets = ( [ '[dead:beef:1234::/16]', 'DEAD:BEEF:1234:0:0:0:0:0/16' ], [ '[::1234:BEEF:DEAD/24]', '0:0:0:0:0:1234:BEEF:DEAD/24' ], ); $| = 1; print '1..', (scalar @subnets) , "\n"; my $count = 1; for my $n (@subnets) { my $ip = new NetAddr::IP::Lite $n->[0]; if ($ip eq $n->[1]) { print "ok $count\n"; } else { print $ip, "\nnot ok $count\n"; } ++ $count; }