В моем скрипте perl я открыл файл и искал строку. Это было успешно. Но когда я снова ищу ту же строку сразу после этого поиска, кажется, что скрипт начинает поиск там, где он был до конца файла, и, следовательно, он больше не может найти совпадение. Мой код что-то вроде:Perl: поиск соответствия несколько раз в файле
open (INFILE, "./input.txt")
for($i=0; $i < 3; $i++){
print "i = $i\n";
$found = 0;
while (! $found && ($line = <INFILE>)){
if ($line =~ /string/ ){
print "found!\n";
$found = 1;
}
else{
print "not found!\n";
}
}
}
close (INFILE);
input.txt файл:
string
random2
random2
Я ожидал, что выход будет:
i = 0
found!
i = 1
found!
i = 2
found!
, но оказывается, :
i = 0
found!
i = 1
not found!
not found!
i = 2
Может ли кто-нибудь помочь мне в этом. Я только начал изучать perl.
Почему вы ожидали бы. этот код для печати 'found!', когда 'string' совпадает только в первой строке вашего файла? – kjprice
@kjprice: Вы отредактировали ошибку в коде. – toolic
@toolic, Woah, я думал, что не компилируется .. просто показалось, что это опечатка. – kjprice