Люди помогите, я весь вечер сижу и никак не могу понять в чем может быть ошибка.... Я сделал простой поиск по файлу, следующего содержания
12345=слово, сам скрипт следующий
$words - слово вводимое пользователем
$keywords - слово в базе
и так
### search on base
open(FILE, "$catalog") || die "Can\'t read $catalog. $!";
flock(FILE, $LOCK_EX);
$findcount=0;
while(!eof(FILE))
{
chomp($catalogword=);
($id,$keywords) = split(/\\=/,$catalogword);
if($keywords=~/$words/)
{
$findcoun++;
push(@SearchFile,$show);
$IdProduct{$show}=$id;
$WordProduct{$show}=$keywords;
}
}
flock(FILE, $LOCK_UN);
close(FILE);
print "Найдено: $findcoun
\\n";
foreach $show(@SearchFile)
{
print "номер - $IdProduct{$show}
\\n";
print "слова - $WordProduct{$show}
\\n";
}
почему то, если есть в базе похожие слова, он выводит правильное кол-во... но сам результат повторяет последним найденым словом, столько раз сколько найдено в базе... ну что то типа
1234=вася, коля, сева
2345=маша, даша
2345=вася, дима
вводим слово вася.... что имеем
он выводит что найдено слово вася 2 раза и показывает
слово=вася, дима 2 раза..... почему?
подскажите...please...