Общие > Nавигатор
Как правильно выбирать CGI скрипты
Green Kakadu:
;) многие ищут по критерию воз-тей: мол делает что мне надо, значит рулезный скрипт, и вовсе не задумываются о его реализации.
На сайте http://perl.com появилась статья:
Finding CGI Scripts ( http://www.perl.com/pub/a/2002/01/23/cgi.html )
О том где найти скрипты, и как выбрать наилуший.
Вот некоторые рекомендации по выбору скрипта:
- используется ли в скрипте ключ -w и прагма strict?
Если да, то хорошо, значит как минимум, программер знал о существовании таковых и смог написать "корректный код", т.к. ключ и пагма strict заставляют интерпритатор Perl быть более настороженным к коду
- используется ли контроль меченных данных?
Ключ -T. Данный режим прежде всего полезен форумам, гостевым книгам, доскам объявлений, т.е. тем, где могут запостить всякую гадость, которую скрипт тупого программера может применить для каких нибудь критичных функций (верх идиотизма - разборка eval :) ) В общем, повышаем надежность. Такие ненадежные данные всегда надо проверять.
- Использует ли скрипт CGI.pm
Это стандартный модуль Perl, который можно найти везде, где есть сам Перл, но некоторые умники предпочитают обрабатывать самостоятельно передаваемые данные... что чревато ошибками и защищенностью скрипта.
- Как часто скрипт обновляется?
Если часто, значит его автор заботится, следит за своим творением и пытается его сделать лучше или хотя бы конкурентноспособным
- Тех. поддержка... она есть вообще?
Очень яркий показатель. Если есть, то имеет смысл ознакомиться с проблемами, которые одолевают пользователей скрипта.
Green Kakadu:
судя по всему вышеизложенному, хороший CGI скрипт должен как минимум выглядеть так:
#!/usr/bin/perl -Tw
use strict;
use CGI qw/:standart/;
use vars \'$global_var\';
;) остается лишь немного дописать и скрипт готов.
Давайте сделаем супер грабилку - устроим Yandex на дому.
#!/usr/bin/perl -Tw
use strict;
use LWP::Simple;
use vars \'$url\', \'$html\';
$url=\'http://yandex.ru\';
$html=head($url);#Проверим, жив ли сайт
if ($html){
$html=get($url);
}
else {$html=\'Яндекс Умер!\'}
$|++;
print "Content-type: text/html\\n\\n";
print $html;
Во, создан супер скрипт проверки Яндекса на живучесть.
:
Ага и занимать он будет как твой код + CGI.pm т.е. где-то 500 байт + 300 кбайт. Мда. Большое удовольствие интерпритатору интерпритировать всё это...
Chs:
--- Цитировать ---
Ага и занимать он будет как твой код + CGI.pm т.е. где-то 500 байт + 300 кбайт. Мда. Большое удовольствие интерпритатору интерпритировать всё это...
--- Конец цитаты ---
Ну да, лучше изобрести велосипед и сделать разбор параметров и большую часть функций CGI самому, влепив пару-тройку ошибок, сделав только метод гет, потом добавить пост, когда он понадобиться, помучиться с разбором multipart/form-data...:) В процессе использования своих функций наткнуться на ошибки.:)
Для приобретения навыков программирования это конечно полезно.:)
Кстати про експорт только части функций модуля может слышали? Тогда и интерпретатор "получит удовольствие"...:)
:
а про CGI::Lite не слышали, что ли?
Навигация
Перейти к полной версии