実行中のコードのスニペットは次のとおりです。
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#.###
ご覧のとおり、これにはいくつかの問題があります。
- 「Address」で始まる行の次の行は、意図した $ の代わりにスペースで始まります。
- その次の行は、「$toPrint の最終値」ではなく「アドレス エントリへ」で始まります。
- その行には、末尾に「アドレスエントリへ」もありません。
- 最後の 2 行の間に余分な改行があります。
- 最後の行には、出力されるはずの変数が含まれているにもかかわらず、「追加された zix01 A」という単語が含まれていません。
- 最後の行には、残りの文字列の後、改行の前に出てくる最後の 5 文字を除いて、印刷されるはずの IP も含まれていません。
ここで何が起こっているのか誰にも分かりませんか?
文法のために編集されました。