打印所以這裏是正在運行的代碼片段:非常奇怪的錯誤。當在Perl
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
是我們的迭代變量。以下是此代碼的特定runthrough的輸出結果。爲了保護隱私,我用###。###。###。###替換了IP中的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#.###
正如你所看到的,這有幾個問題。
- 以「地址」開頭的行以空格開頭,而不是打算的$。
- 之後的行以「到地址條目」開始,而不是「$到打印的最終值」。
- 該行在結尾處也沒有「地址條目」。
- 最後兩行之間有一個額外的換行符。
- 最後一行不包含單詞「添加zix01 A」,即使它應該打印的變量確實如此。
- 最後一行也不包括它應該打印的IP,除了最後5個字符以外,這些字符在字符串的其餘部分之後但在換行符之前出現。
有沒有人有任何想法這裏發生了什麼?
編輯爲語法。
這不一定與您的問題有關,但我已經看到由打印輸出緩衝區引起的各種奇怪的打印行爲。把它放在腳本的頂部,試着關掉它:$ | = 1; – Magnus