Perl:While循环不会继续使用指定的变量
这是我的密码:Perl:While循环不会继续使用指定的变量,perl,Perl,这是我的密码: while (<LIST>) { if (m|^\w|) { chomp; print "$_\n"; } if (m|^\t|) { chomp; $search = substr($_, 1); print " $search\n"; while (<BIBLE>) { while ($_ =~ /\b$se
while (<LIST>) {
if (m|^\w|) {
chomp;
print "$_\n";
}
if (m|^\t|) {
chomp;
$search = substr($_, 1);
print " $search\n";
while (<BIBLE>) {
while ($_ =~ /\b$search\b/ig) {
$book = substr($_, 0, 2);
$chap = substr($_, 3, 3);
$verse = substr($_, 7, 3);
print " $book:$chap:$verse\n";
}
}
}
}
关于如何使后续的搜索工作有什么想法吗?代码有问题吗 此程序试图读取列表中每个单词的整个圣经文件。该文件被第一个字占用,然后每个字都被EOF占用。您需要关闭并重新打开每个单词的圣经文件。当然,这是一种非常糟糕的做法。在CPAN退房
或者正如Mat所说,你可以做一个
seek(圣经,0,0)代码>不需要关闭/重新打开,搜索应该足够了谢谢您的回答。能否提供一个示例来实现seek函数?我看了看perldocs,它说的话让我很困惑(新手)。谢谢。这是我做的。我添加了seek(圣经,0,0)
作为主while循环中的最后一个命令。我假设把位置放回列表文件的开头?你能再详细解释一下为什么它不起作用吗?也许我没有跟上。谢谢
headword1
abahandiiki
41:001:022
41:002:016
41:003:022
41:007:005
41:008:031
41:009:011
41:009:014
41:009:016
41:010:033
41:011:018
41:011:027
41:012:035
41:012:038
41:014:001
41:014:043
41:014:053
41:015:001
41:015:031
43:008:003
abahe
abaheereza
headword2
baheereza
baheerezakazi
bahiire
bahikiirire
bahingi
bahungire
headword3
okurikuhikiirizibwa
okurikushushana
okurikusiimwa
okurikwera
okurogota
okuruga
okurugirira
okurungi
okurwanisa
okurya
okushaagaana
okushara