在我的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。
爲什麼你期望的那樣。該代碼打印'發現!'當'字符串'只匹配在您的文件的第一行? – kjprice
@kjprice:您編輯了一個代碼中的錯誤 – toolic
@toolic,哇,我認爲不會編譯.. 。只是認爲這是一個錯字 – kjprice