|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Konstantin Tokar 2:5020/400 14 Nov 2002 13:03:00 To : Pavel Ischenco Subject : Re: site search -------------------------------------------------------------------------------- > Есть N html-файлов, разбросанных по разным каталогам. > Пути закинуты в массив в виде: > /bla/files/1.shtml > /bla-bla/files_b/sh.shtml > etc. > Hужно организовать по ним поиск включение некого кейворда. > > Идея реализации: Вычленяем кейворд, берем путь к файлу из массива, > открываем, > запихиваем в другой массив с разбивкой по \n, в цикле каждую строку > (по словам) > перебираем вложенным циклом на предмет сопоставления с кейвордом... > > Жутко геморно и неэтично. Можно ли проще ? > Я видимо шибко глубоко копаю, да ? Или это еще "оптимальный вариант" ? Ты копаешь мелко. Если файлов больше пары десятков и нужен язык запросов, морфология и вообще будущее развитие, то надо слушать советы которые уже были. Твой алгоритм можно улучшить примерно так: #!perl -w use strict; use File::Slurp; my $files = shift; #список файлов my $keyword=shift; open FILES, '<' . $files or die($@); while( my $filename = <FILES> ){ #как было установлено, в каком-то перле эта конструкция незаконна, но мы на это пока наплюём chomp $filename; next unless -f $filename; my $s = read_file($filename); print "$filename\n" if $s =~ /$keyword/io; } close FILES; а потом разбираться с безпасностью, регулярными выражениями (или просто index) и так далее до понимания причины повсеместного использования поисковых систем. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/6577193bb6c0.html, оценка из 5, голосов 10
|