получаем запрос, по которому ведётся
16 system("/bin/mkdir", "-m", "0777", "$books_cache_dir"); #Unix
17 system("mkdir", "$books_cache_dir"); #Windows
18 }
19 my $phrase= uri_escape($coi->param('text')); # получаем запрос, по которому ведётся поиск, переводим всё в escape последовательности
20 $phrase = 'perl' unless $phrase or $coi->param('path'); # по умолчанию - запрос 'perl', остальное - для совметимости со старой версией скрипта,поисковики о ней ещё помнят :)
21 my $path;
22 my $page_num;
23 if($coi->param('page')){ # определяем номер текущей страницы для отображения( в Озоне, если количество книг > 20, то происходит разбивка книг по 20 на страницу)
24 $page_num = int($coi->param('page'));
25 $page_num = 0 if $page_num<0;
26 }
27 if($page_num){ # вычисляем, какую страницу на нужно качать
28 $path = 'http://www.ozon.ru/?context=advsearch_book&partner=d392&title=' .$phrase.'&page='.$page_num;
29 }
30 else{
31 unless($coi->param('path')){
32 $path = 'http://www.ozon.ru/?context=advsearch_book&partner=d392&title='.$phrase;
33 }
34 else{
35 my $add_path = uri_unescape($coi->param('path'));
36 $path = 'http://www.ozon.ru'.$add_path."&partner=d392";
37 if($add_path =~m /title=(.*)&/i){$phrase=$1;}
38 }
39 }
40 open(cache_list,"$books_cache_dir/list.cache"); # "смотрим на текущее состояние кэша"
41 if ($flock_allow){lockfile('cache_list');} # если разрешено блокирование файла, то блокируем