我有以下一段簡單的代碼(標識爲問題代碼片段並從一個更大的程序中提取)。逐行讀取文件迭代問題
難道是我還是可以在代碼中看到一個明顯的錯誤,即它在停止匹配$variable
和打印$found
的時候肯定應該這樣做?
當我嘗試打印$variable
時沒有打印任何內容,而且我使用的文件中絕對存在匹配的行。
代碼:
if (defined $var) {
open (MESSAGES, "<$messages") or die $!;
my $theText = $mech->content(format => 'text');
print "$theText\n";
foreach my $variable (<MESSAGES>) {
chomp ($variable);
print "$variable\n";
if ($theText =~ m/$variable/) {
print "FOUND\n";
}
}
}
我已經找到了這個爲在該處發生異常,但不明白爲什麼了吧? 有些事我可以完全忽略,因爲它已經很晚了?
是否打印了$ theText? – Borodin 2013-02-21 00:38:16
是的網頁內容正在打印,我知道我的文本文件中的字符串是在內容中找到的,因爲我在模式匹配中硬編碼了字符串,並在內容中找到它 – 2013-02-21 00:43:16
您應該嘗試將文件讀入一個數組,像'my @messages =',然後你可以'打印標量@消息'來查看已經讀了多少行。我認爲這很可能是你拾取錯誤的文件,因爲'$ messages'不包含你認爲它所做的事情,或者因爲它正在查找錯誤的目錄。 –
Borodin
2013-02-21 00:44:37