所以这是正在运行的代码片段:
if($verbose){
my $toPrint = "Added ";
if($types[$count]){
$toPrint .= "$types[$count] ";
print "Type: $types[$count]\n"; #Manual debugging
print "\$toPrint: $toPrint\n"; #Manual debugging
}
if($addressTypes[$count]){
$toPrint .= "$addressTypes[$count] ";
print "Address Type: $addressTypes[$count]\n"; #Manual debugging
print "\$toPrint: $toPrint\n"; #Manual debugging
}
if($addresses[$count]){
$toPrint .= "$addresses[$count] ";
print "Address: $addresses[$count]\n"; #Manual Debugging
print "\$toPrint: $toPrint\n"; #Manual debugging
}
$toPrint .= "to the address entries\n";
print "Final value of \$toPrint before printing: $toPrint\n"; #Manual debugging
print $toPrint;
}
我们在一个 for 循环中,$count
作为我们正在迭代的变量。这是此代码的特定运行的输出的样子。为了隐私起见,我已将其中的 IP 替换为###.###.###.###。
Type: zix01
$toPrint: Added zix01
Address Type: A
$toPrint: Added zix01 A
Address: ###.###.###.###
toPrint: Added zix01 A ###.###.###.###
to the address entries before printing: Added zix01 A ###.###.###.###
to the address entries#.###
如您所见,这有几个问题。
- 以“地址”开头的行后面的行以空格而不是预期的 $ 开头。
- 之后的行以“到地址条目”而不是“$toPrint 的最终值”开头。
- 该行的末尾也没有“到地址条目”。
- 最后两行之间有一个额外的换行符。
- 最后一行不包含单词“Added zix01 A”,即使它应该打印的变量确实如此。
- 最后一行也不包括它应该打印的 IP,除了它的最后 5 个字符,它们在字符串的其余部分之后但在换行符之前出现。
有谁知道这里发生了什么?
为语法编辑。