我有以下一段简单的代码(标识为问题代码片段并从一个更大的程序中提取)。逐行读取文件迭代问题
难道是我还是可以在代码中看到一个明显的错误,即它在停止匹配$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