ЖЕМЧУЖНЫЙ САЙТ - cкриптинг на перле Леха ББ ака Alexys Спецвыпуск Xakep, номер #027, стр. 027-026-6 print "<table cellspacing=0 cellpadding=0 border=0 width=100% bgcolor=#FFCC99>\n"; print "<tr><td>\n"; $navifile=$maindir.'navi.txt'; open(NAV, "$navifile"); @navi=<NAV>; close (NAV); foreach (@navi) { print $_; } print "</td></tr></table>\n"; Остались закрывающие HTML-тэги и завершение работы скрипта. print "</body></html>"; exit; Это еще не конец. Написанный скрипт один из самых простых. Его еще можно много как модифицировать, например, заставить его вести учет просмотренных страниц. #--ведение---файла--статистики---- $statfile=$maindir.'stat.txt'; $adres=$ENV{'QUERY_STRING'}; $lock='~ci-temp.tmp'; # Проверка на существование файла статистики; если такого файла нет, то скрипт его создаст open(FILE, ">>$statfile"); close(FILE); # теперь файл стопудуво существует, поэтому открываем его для чтения, open(FILE, "$statfile"); @indata = <FILE>; close(FILE); $onoff = 0; &Lock; #Ставим блокировку, чтобы несколько копий скрипта не писали одновременно в один и тот же файл - иначе такая каша может получиться :( open(FILE, ">$statfile"); foreach $temp (@indata) { chomp($temp); ($name, $uri, $count) = split(/;;/, $temp); if ($uri eq $adres) { $count++; $onoff = 1; print FILE "$name;;$uri;;$count\n"; } else { print FILE "$name;;$uri;;$count\n"; } } #В этом цикле мы перебираем все уже известные нам адреса, и если запрошенный сейчас адрес совпадает с одним из известных - увеличиваем счетчик на единицу. if ($onoff eq 0) { print FILE "$chname;;$adres;;1\n"; } #Если выясняется, что текущего адреса мы никогда не видели (ну, вдруг ты новую статью только что добавил или кто-то пытался своими кривыми ручонками поиграть с параметрами твоего скрипта), то мы добавляем в файл статистики новую строку и ставим ее счетчик в единицу. close(FILE); #Файл закрыли, теперь снимаем блокировку &Unlock; #------------------------------------------------------------- # Lock: Проверка блокировки #------------------------------------------------------------- sub Lock { $timecheck = 0; while(-e $lock) { sleep(5); $timecheck = $timecheck + 1; if ($timecheck >= 6) { unlink("$lock"); } } open(LOCKFILE,">$lock"); close(LOCKFILE); return; } #------------------------------------------------------------- # Unlock: Снятие блокировки #------------------------------------------------------------- sub Unlock { unlink("$lock"); |