| line | true | false | branch | 
 
| 146 | 129 | 31 | if (@_ == 1) { } | 
 
| 150 | 26 | 5 | if (defined $param{'text'}) { } | 
 
|  | 2 | 3 | elsif (defined $param{'fh'}) { } | 
 
|  | 3 | 0 | elsif (defined $param{'file'}) { } | 
 
| 156 | 0 | 3 | unless defined $fh | 
 
| 165 | 160 | 0 | unless defined $origin | 
 
| 166 | 0 | 160 | unless $origin =~ /^\./ | 
 
| 167 | 0 | 160 | unless $origin =~ /\.$/ | 
 
| 169 | 2 | 158 | if $on_error and not exists $param{'soft_errors'} | 
 
| 170 | 0 | 160 | if $on_error and not exists $param{'quiet'} | 
 
| 175 | 5 | 155 | if ($fh) { } | 
 
| 192 | 26 | 134 | if ($@) | 
 
| 193 | 0 | 26 | if $globalerror | 
 
| 194 | 25 | 1 | if $param{'soft_errors'} | 
 
| 199 | 112 | 22 | if $minimum < 0 | 
 
| 201 | 64 | 88 | if $$z{'ttl'} <= 0 | 
 
| 207 | 0 | 152 | if ($param{'tolower'}) { } | 
 
|  | 0 | 152 | elsif ($param{'toupper'}) { } | 
 
| 209 | 0 | 0 | if defined $$z{'cname'} | 
 
| 210 | 0 | 0 | if defined $$z{'dname'} | 
 
| 211 | 0 | 0 | if defined $$z{'exchange'} | 
 
| 212 | 0 | 0 | if defined $$z{'mname'} | 
 
| 213 | 0 | 0 | if defined $$z{'rname'} | 
 
| 214 | 0 | 0 | if defined $$z{'nsdname'} | 
 
| 215 | 0 | 0 | if defined $$z{'ptrdname'} | 
 
| 216 | 0 | 0 | if defined $$z{'target'} | 
 
| 217 | 0 | 0 | if defined $$z{'mbox'} | 
 
| 218 | 0 | 0 | if defined $$z{'txtdname'} | 
 
| 221 | 0 | 0 | if defined $$z{'cname'} | 
 
| 222 | 0 | 0 | if defined $$z{'dname'} | 
 
| 223 | 0 | 0 | if defined $$z{'exchange'} | 
 
| 224 | 0 | 0 | if defined $$z{'mname'} | 
 
| 225 | 0 | 0 | if defined $$z{'rname'} | 
 
| 226 | 0 | 0 | if defined $$z{'nsdname'} | 
 
| 227 | 0 | 0 | if defined $$z{'ptrdname'} | 
 
| 228 | 0 | 0 | if defined $$z{'target'} | 
 
| 229 | 0 | 0 | if defined $$z{'mbox'} | 
 
| 230 | 0 | 0 | if defined $$z{'txtdname'} | 
 
| 234 | 0 | 151 | if ($$newrec{'type'} eq 'DNSKEY') | 
 
| 235 | 0 | 0 | if (ref $newrec ne 'Net::DNS::RR::DNSKEY') { } | 
 
| 260 | 2 | 24 | if ($on_error) { } | 
 
| 262 | 0 | 2 | if ($@ ne '') | 
 
| 268 | 0 | 24 | if $soft_errors and not $quiet | 
 
| 275 | 0 | 427 | if (/^\$include[ \t]+/gi) { } | 
 
|  | 19 | 408 | elsif (/^\$origin[ \t]+/gi) { } | 
 
|  | 2 | 406 | elsif (/^\$generate[ \t]+/gi) { } | 
 
|  | 17 | 389 | elsif (/^\$ttl\b/gi) { } | 
 
|  | 213 | 176 | elsif (/^$pat_skip$/g) { } | 
 
|  | 13 | 163 | elsif (/^[ \t]+/g) { } | 
 
|  | 18 | 145 | elsif (/^\.[ \t]+/g) { } | 
 
|  | 13 | 132 | elsif (/^\@[ \t]+/g) { } | 
 
|  | 0 | 132 | elsif (/^$/g) { } | 
 
|  | 81 | 51 | elsif (/^($pat_name\.)[ \t]+/g) { } | 
 
|  | 47 | 4 | elsif (/^($pat_name)[ \t]+/g) { } | 
 
| 276 | 0 | 0 | unless (/\G[\"\']*([^\s\'\"]+)[\"\']*/cig) | 
 
| 281 | 0 | 0 | unless (-f $fn) | 
 
| 283 | 0 | 0 | if ($includes_root and -f $includes_root . '/' . $fn) { } | 
 
| 295 | 0 | 0 | unless defined $fh | 
 
| 298 | 17 | 2 | if (/\G($pat_maybefullname)$pat_skip$/cg) { } | 
 
|  | 2 | 0 | elsif (/\G\.$pat_skip$/cg) { } | 
 
| 300 | 3 | 14 | unless $name =~ /\.$/ | 
 
| 302 | 17 | 0 | unless $origin =~ /^\./ | 
 
| 311 | 2 | 0 | if (/\G(\d+)\s*-\s*(\d+)\s+(.*)$/) { } | 
 
| 315 | 1 | 1 | if $from > $to | 
 
| 316 | 0 | 1 | unless $pat =~ /\$/ | 
 
| 335 | 12 | 5 | if (/\G\s+($pat_ttl)$pat_skip$/) { } | 
 
| 338 | 0 | 12 | if ($default_ttl < 0 or $default_ttl > $MAXIMUM_TTL) { } | 
 
| 341 | 0 | 12 | if $debug | 
 
| 356 | 9 | 4 | unless $domain eq '.' | 
 
| 367 | 68 | 104 | if (/\G($pat_ttl)[ \t]+/cg) { } | 
 
| 370 | 0 | 68 | if ($ttl == 0) { } | 
 
| 373 | 0 | 68 | if ($ttl < 0 or $ttl > $MAXIMUM_TTL) | 
 
| 380 | 121 | 51 | if (/\G(in)[ \t]+/cig) | 
 
| 383 | 42 | 130 | if (/\G(a)[ \t]+/cig) { } | 
 
|  | 21 | 109 | elsif (/\G(ptr)[ \t]+/cig) { } | 
 
|  | 0 | 109 | elsif (/\G(afsdb)[ \t]+/cig) { } | 
 
|  | 6 | 103 | elsif (/\G(cname)[ \t]+/cig) { } | 
 
|  | 2 | 101 | elsif (/\G(dname)[ \t]+/cig) { } | 
 
|  | 23 | 78 | elsif (/\G(mx)[ \t]+/cig) { } | 
 
|  | 7 | 71 | elsif (/\G(aaaa)[ \t]+/cig) { } | 
 
|  | 11 | 60 | elsif (/\G(ns)[ \t]+/cig) { } | 
 
|  | 26 | 34 | elsif (/\G(soa)\b/cig) { } | 
 
|  | 10 | 24 | elsif (/\G(txt|spf)[ \t]+/cig) { } | 
 
|  | 0 | 24 | elsif (/\G(type[0-9]+)[ \t]+/cig) { } | 
 
|  | 1 | 23 | elsif (/\G(sshfp)[ \t]+/cig) { } | 
 
|  | 0 | 23 | elsif (/\G(loc)[ \t]+/cig) { } | 
 
|  | 4 | 19 | elsif (/\G(hinfo)[ \t]+/cig) { } | 
 
|  | 0 | 19 | elsif (/\G(srv)[ \t]+/cig) { } | 
 
|  | 0 | 19 | elsif (/\G(key)[ \t]+/cig) { } | 
 
|  | 3 | 16 | elsif (/\G(rrsig)[ \t]+/cig) { } | 
 
|  | 0 | 16 | elsif (/\G(dnskey)[ \t]+/cig) { } | 
 
|  | 0 | 16 | elsif (/\G(ds)[ \t]+/cig) { } | 
 
|  | 3 | 13 | elsif (/\G(tlsa)[ \t]+/cig) { } | 
 
|  | 0 | 13 | elsif (/\G(nsec)[ \t]+/cig) { } | 
 
|  | 0 | 13 | elsif (/\G(nsec3)[ \t]+/cig) { } | 
 
|  | 0 | 13 | elsif (/\G(nsec3param)[ \t]+/cig) { } | 
 
|  | 4 | 9 | elsif (/\G(rp)[ \t]+/cig) { } | 
 
|  | 0 | 9 | elsif (/\G(naptr)[ \t]+/cig) { } | 
 
|  | 0 | 9 | elsif (/\Gany\s+tsig.*$/cig) { } | 
 
| 384 | 42 | 0 | if (/\G(\d+)\.(\d+)\.(\d+)\.(\d+)$pat_skip$/ and $1 < 256 and $2 < 256 and $3 < 256 and $4 < 256) { } | 
 
| 398 | 21 | 0 | if (/\G($pat_maybefullname)$pat_skip$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\@$pat_skip$/cg) { } | 
 
| 400 | 0 | 21 | unless $name =~ /\.$/ | 
 
| 412 | 0 | 0 | unless $name eq '.' | 
 
| 427 | 0 | 0 | if (/\G(\d+)[ \t]+/cg) { } | 
 
| 432 | 0 | 0 | if (/\G($pat_maybefullname)$pat_skip$/cg) | 
 
| 434 | 0 | 0 | unless $name =~ /\.$/ | 
 
| 447 | 5 | 1 | if (/\G($pat_maybefullname)$pat_skip$/cg) { } | 
 
|  | 1 | 0 | elsif (/\G\@$pat_skip$/cg) { } | 
 
| 449 | 0 | 5 | unless $name =~ /\.$/ | 
 
| 461 | 1 | 0 | unless $name eq '.' | 
 
| 475 | 2 | 0 | if (/\G($pat_maybefullname)$pat_skip$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\@$pat_skip$/cg) { } | 
 
| 477 | 0 | 2 | unless $name =~ /\.$/ | 
 
| 489 | 0 | 0 | unless $name eq '.' | 
 
| 504 | 22 | 1 | if (/\G(\d+)[ \t]+/cg) { } | 
 
| 509 | 22 | 0 | if (/\G($pat_maybefullnameorroot)$pat_skip$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\@$pat_skip$/cg) { } | 
 
| 511 | 0 | 22 | unless $name =~ /\.$/ | 
 
| 524 | 0 | 0 | unless $name eq '.' | 
 
| 539 | 5 | 2 | if (/\G([\da-fA-F:.]+)$pat_skip$/) { } | 
 
| 542 | 0 | 5 | if ($string =~ /^(.*):(\d+)\.(\d+)\.(\d+)\.(\d+)$/) | 
 
| 550 | 5 | 0 | if ($string =~ /^(.*)::(.*)$/) { } | 
 
| 554 | 5 | 0 | @front ? : | 
 
|  | 5 | 0 | @back ? : | 
 
| 560 | 0 | 0 | if (@addr < 8) | 
 
| 578 | 11 | 0 | if (/\G($pat_maybefullname)$pat_skip$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\@$pat_skip$/cg) { } | 
 
| 580 | 0 | 11 | unless $name =~ /\.$/ | 
 
| 592 | 0 | 0 | unless $name eq '.' | 
 
| 620 | 0 | 10 | if (/\G('[^']+')$pat_skip$/cg) { } | 
 
|  | 10 | 0 | elsif (/\G("[^"]+")$pat_skip$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G(["']?.*?["']?)$pat_skip$/cg) { } | 
 
| 652 | 0 | 0 | if (/\G\\#\s+(\d+)\s+\(\s(.*)$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\\#\s+(\d+)\s+(.*)$pat_skip$/cg) { } | 
 
| 678 | 0 | 1 | if (/\G(\d+)\s+(\d+)\s+\(\s*$/cg) { } | 
 
|  | 1 | 0 | elsif (/\G(\d+)\s+(\d+)\s+([a-zA-Z0-9]+)$pat_skip$/cg) { } | 
 
| 706 | 0 | 0 | if (/\G (\d+) \s+		# deg lat
	       ((\d+) \s+)?		# min lat
	       (([\d.]+) \s+)?		# sec lat
	       (N|S) \s+			# hem lat
	       (\d+) \s+			# deg lon
	       ((\d+) \s+)?		# min lon
	       (([\d.]+) \s+)?		# sec lon
	       (E|W) \s+			# hem lon
	       (-?[\d.]+) m? 		# altitude
	       (\s+ ([\d.]+) m?)?	# size
	       (\s+ ([\d.]+) m?)?	# horiz precision
	       (\s+ ([\d.]+) m?)? 	# vert precision
	       $pat_skip
	       $/cgix) { } | 
 
| 736 | 0 | 0 | unless $latmin | 
 
| 737 | 0 | 0 | unless $latsec | 
 
| 740 | 0 | 0 | unless $lonmin | 
 
| 741 | 0 | 0 | unless $lonsec | 
 
| 744 | 0 | 0 | unless $size | 
 
| 745 | 0 | 0 | unless $horiz_pre | 
 
| 746 | 0 | 0 | unless $vert_pre | 
 
| 766 | 3 | 1 | if (/\G(["'].*?["']|\S+)\s+(["'].*?["']|\S+)$pat_skip$/cg) { } | 
 
| 786 | 0 | 0 | if (/\G(\d+)\s+(\d+)\s+(\d+)\s+(\S+)$pat_skip$/cg) { } | 
 
| 803 | 0 | 0 | unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg) | 
 
| 817 | 0 | 0 | if (/\G\(\s*$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G(.*\S)\s*$/) { } | 
 
| 832 | 3 | 0 | if (/\G(\w+)\s+(\d+)\s+(\d+)\s+(\d+)\s+/cg) { } | 
 
| 850 | 3 | 0 | if (/\G(\d+)\s+/cg) { } | 
 
| 858 | 2 | 1 | if (/\G\(\s*$/cg) { } | 
 
|  | 1 | 0 | elsif (/\G(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)\s+([^=]+=)\s*/cg) { } | 
 
| 874 | 0 | 0 | unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg) | 
 
| 888 | 0 | 0 | if (/\G\(\s*$/cg) { } | 
 
|  | 0 | 0 | elsif (m[\G([\sA-Za-z0-9\+/=]+).*$]) { } | 
 
| 902 | 0 | 0 | unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg) | 
 
| 915 | 0 | 0 | if (/\G\(\s*$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G(.*\S)\s*$/) { } | 
 
| 933 | 0 | 3 | unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg) | 
 
| 946 | 1 | 2 | if (/\G\(\s*$/cg) { } | 
 
|  | 2 | 0 | elsif (/\G(.*\S)\s*$/) { } | 
 
| 964 | 0 | 0 | if (/\G\s*($pat_maybefullnameorroot)\s+(.*?)$pat_skip$/cg) { } | 
 
| 984 | 0 | 0 | unless $nsec3capable | 
 
| 986 | 0 | 0 | if (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)\s+($pat_maybefullname)\s*(.*?)$pat_skip$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)\s+\(/cg) { } | 
 
| 1035 | 0 | 0 | if (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)$pat_skip$/cg) { } | 
 
| 1057 | 4 | 0 | if (/\G($pat_maybefullname)[ \t]+/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\@[ \t]+/cg) { } | 
 
| 1059 | 1 | 3 | unless $mbox =~ /\.$/ | 
 
| 1063 | 0 | 0 | unless $mbox eq '.' | 
 
| 1070 | 3 | 1 | if (/\G($pat_maybefullname)$pat_skip$/cg) { } | 
 
|  | 1 | 0 | elsif (/\G\@$pat_skip$/cg) { } | 
 
| 1072 | 1 | 2 | unless $txtdname =~ /\.$/ | 
 
| 1076 | 1 | 0 | unless $txtdname eq '.' | 
 
| 1093 | 0 | 0 | unless (/\G(\d+) \s+ (\d+) \s+ ['"] (.*?) ['"] \s+ ['"] (.*?) ['"] \s+ ['"] (.*?) ['"] \s+ (\S+)$/cgx) | 
 
| 1131 | 0 | 0 | if $hem eq 'S' or $hem eq 'W' | 
 
| 1138 | 0 | 51 | unless $soa | 
 
| 1139 | 0 | 51 | if ($$soa{'breakable'}) { } | 
 
| 1140 | 0 | 0 | if (/\G[ \t]*($pat_maybefullname)$pat_skip$/cig) { } | 
 
|  | 0 | 0 | elsif (/\G$pat_skip$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G[ \t]*(\@)[ \t]/cig) { } | 
 
|  | 0 | 0 | elsif (/\G[ \t]*($pat_name\.)[ \t]/cig) { } | 
 
| 1152 | 47 | 4 | if (/\G[ \t]*($pat_maybefullname)/cig) { } | 
 
|  | 0 | 4 | elsif (/\G[ \t]*\($pat_skip$/cig) { } | 
 
|  | 2 | 2 | elsif (/\G[ \t]*(\@)[ \t]/cig) { } | 
 
|  | 0 | 2 | elsif (/\G[ \t]*\(/cig) { } | 
 
| 1167 | 25 | 24 | if ($$soa{'nextkey'} eq 'mname') { } | 
 
|  | 24 | 0 | elsif ($$soa{'nextkey'} eq 'rname') { } | 
 
| 1175 | 0 | 0 | unless $soa | 
 
| 1183 | 23 | 92 | if ($$soa{'nextkey'} eq 'serial') { } | 
 
| 1184 | 0 | 23 | unless $v =~ /^\d+$/ | 
 
| 1187 | 0 | 92 | unless $v | 
 
| 1195 | 2 | 15 | if ($$rrsig{'first'}) { } | 
 
| 1197 | 0 | 2 | if (exists $$rrsig{'needsigexp'} and /\G\s*(\d+)\s+(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)/cg) { } | 
 
|  | 2 | 0 | elsif (not exists $$rrsig{'needsigexp'} and /\G\s*(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)/cg) { } | 
 
| 1213 | 2 | 13 | if (/\)\s*$/) { } | 
 
| 1214 | 2 | 0 | if (/\G\s*(\S+)\s*\)\s*$/cg) { } | 
 
| 1226 | 13 | 0 | if (/\G\s*(\S+)\s*$/cg) { } | 
 
| 1238 | 0 | 0 | if (/\)\s*$/) { } | 
 
| 1240 | 0 | 0 | if (/\G\s*(\S+)\s*\)\s*$/cg) { } | 
 
| 1251 | 0 | 0 | if (/\G\s*(\S+)\s*$/cg) { } | 
 
| 1262 | 0 | 0 | if (/\)\s*;.*$/) { } | 
 
| 1263 | 0 | 0 | if (/\G\s*(\S*)\s*\)\s*;.*$/cg) { } | 
 
| 1275 | 0 | 0 | if (/\G\s*(\S+)\s*$/cg) { } | 
 
| 1286 | 0 | 0 | if (/\)\s*$/) { } | 
 
| 1287 | 0 | 0 | if (/\G\s*(\S*)\s*\)\s*$/cg) { } | 
 
| 1301 | 0 | 0 | if (/\G\s*(\S+)\s*$/cg) { } | 
 
| 1312 | 1 | 0 | if (/\)\s*$/) { } | 
 
| 1316 | 1 | 0 | if (/\G\s*\)$/cg) { } | 
 
| 1329 | 0 | 0 | if (/\G\s*(\S+)\s*$/cg) { } | 
 
| 1340 | 0 | 0 | if (/\G\s*([A-Z0-9]{32})\s*(\))?/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\s+$/cg) { } | 
 
|  | 0 | 0 | elsif (/\G\s*((\w+\s+)*)\)\s*$/) { } | 
 
| 1346 | 0 | 0 | if (defined $2 and $2 eq ')') | 
 
| 1370 | 0 | 163 | unless $soa | 
 
| 1371 | 139 | 24 | if ($$soa{'breakable'}) { } | 
 
| 1372 | 22 | 117 | if (/\G[ \t]*($pat_ttl)$pat_skip$/cig) { } | 
 
|  | 24 | 93 | elsif (/\G$pat_skip$/cg) { } | 
 
|  | 93 | 0 | elsif (/\G[ \t]*($pat_ttl)\b/cig) { } | 
 
| 1382 | 0 | 24 | if (/\G[ \t]+($pat_ttl)/cig) { } | 
 
|  | 5 | 19 | elsif (/\G[ \t]*\($pat_skip$/cig) { } | 
 
|  | 18 | 1 | elsif (/\G[ \t]*\(/cig) { } | 
 
| 1395 | 23 | 92 | if ($$soa{'nextkey'} eq 'serial') { } | 
 
|  | 23 | 69 | elsif ($$soa{'nextkey'} eq 'refresh') { } | 
 
|  | 23 | 46 | elsif ($$soa{'nextkey'} eq 'retry') { } | 
 
|  | 23 | 23 | elsif ($$soa{'nextkey'} eq 'expire') { } | 
 
|  | 23 | 0 | elsif ($$soa{'nextkey'} eq 'minimum') { } | 
 
| 1405 | 21 | 2 | if $default_ttl <= 0 | 
 
| 1406 | 23 | 0 | $$soa{'breakable'} ? : | 
 
| 1407 | 0 | 0 | unless ($$soa{'breakable'} or /\G$pat_skip$/cg) | 
 
| 1412 | 2 | 21 | unless $$soa{'mname'} =~ /\.$/ | 
 
| 1413 | 2 | 21 | unless $$soa{'rname'} =~ /\.$/ | 
 
| 1419 | 0 | 23 | if $parse == \&parse_line | 
 
| 1421 | 0 | 0 | unless $soa | 
 
| 1428 | 23 | 2 | if (/\G[ \t]*\)$pat_skip$/cig) { } | 
 
|  | 2 | 0 | elsif (/\G$pat_skip$/cg) { } | 
 
| 1449 | 164 | 8 | if ($t =~ /^\d+$/) { } | 
 
|  | 8 | 0 | elsif ($t =~ /^(?:\d+[WDHMS])+$/i) { } |