провайдер, выделенная линия, хости
нг статьи и документация | как выбирать провайдера | гостевая книга | e-mail | home | вход в базу  


В начало каталога провайдеров
Новости провайдеров
Список провайдеров по городам
Модемное подключение
Выделенная линия
Хостинг
Colocation
Интернет-карты
Тестовый доступ
Отзывы клиентов
Форум Москва
Форум Санкт-Петербург
Карта АТС
Статьи и документация
Интересные ссылки
Работа у провайдера
Провайдерам - как попасть в базу




Подпишись на новости!

Subscribe.ru:
Maillist.ru:
.

Почитать:

Программирование на PERL. Основы работы с HTML с использованием HTML::Parsertie.
PHP: Безопасность средствами суперглобальных массивов
Perl: Рисуем диаграммы с использованием GD::Graph
PHP: Библиотека обработки HTML-текста из PHP-скриптов
Perl: Создание графики на лету с использованием GD
mod_perl за 30 минут
RU.PHP FAQ
Программирование на PHP. Новый тип навигационной системы при постраничном выводе.
Программирование на PERL. Почему mod_perl?.
Программирование на ASP. Краткое введение в технологию.
Программирование на PERL. Построим web-интерфейс на Perle, если база - Oracle.
Программирование на PERL. Работа с базами данных. Краткое введение в DBI. . . . . . . .






Каталог провайдеров / Articles / Web / Perl-ru-faq / faq-54.html


Реклама
Нужна выделенная линия?

Тендер на providerZ.ru - заполни анкету и отправь запрос сразу в 10 компаний.



54. >Hаписание скриптов под mod_perl чем нибудь отличается от написанияобычных CGI скриптов?

Вообще говоря, да. 
Во-первых, существует куча более других способов писания под mod_perl -
Perl-SSI, Perl*Handlers, логика работы которых сильно отличается от CGI.
Если же мы говорим о тех скриптах, которые выполняются через
Apache::Registry, то есть следующие различия:
1. Hельзя использовать my-переменные уровня файла. То есть использовать
можно,  но результат будет ну очень странный. Дело в том, что с точки
зрения перла, mod_perl-овый скрипт это не файл, а тело процедуры.
Поэтому использование в нем my переменных, которые потом пользуются из
вложенных процедур, приводит к возникновению closure и всему, что из
этого следует.
Я лично исполюзую следующую технику:
use CGI;
use DBI;
use strict;
use что-там-еще-надо
&main;
sub main {
   my $cgi=new CGI;
   ....
}
sub some_more_sub {
  ...
}
При таким образом написанном скрипте я уверен что lexical scoring будет
вести себя одинаково и в CGI и в mod_perl.
2. Скрипты живут долго. Поэтому мусор за собой надо чистить аккуратно.
3. Тебе доступен объект Apache::Request, который содержит уйму интересной
информации; в частности, из него можно вытащить пароль при basic
authentication.
4. Теоретически, у тебя есть куда больше способов повлиять на поведение
Apache в процессе обработки твоего запроса, чем из CGI.
5.  Если  ты  используешь самописные модули, то при их редактировании придется
апач   перестартовывать   (apachectl  graceful)  - поскольку   крайне   сложно
(и  долго)     проверять     все     зависимости,  Apache::Registry  проверяет
только  момент    изменения   самого  исполняемого   им  скрипта,   а  модули,
используемые  в   качестве    Perl*Handler,   не  проверяются вообще. Если   в
конфигурации   Апача    сказано   PerlFreshRestart  On,  то достаточно его  об
этом  попросить  вежливо  (SIGUSR1  AKA  apachectl  graceful   или SIGHUP  AKA
apachectl  restart),  но  за   отработкой  этой директивы  при наличии сложных
модулей    замечены  проблемы.  Если она  Off, то придётся  положить и поднять
(apachectl       stop;        apachectl     start).      Существует     модуль
Apache:StatINC,  который  следит  за   изменениями модулей и перегружает их по
мере   изменения.  Hо   есть подозрение, что  он не  надёжнее PerlFresRestart.
При   изменении   модулей  остерегайтесь  эффекта  частичного  срабатывания  -
некоторые  запросы обрабатываются еще старой версией модуля, а некоторые - уже
новой. Это происходит оттого, что модуль грузится  отдельно каждым экземпляром
Apache,  скорее  всего,  только   при  первом  обращении  к  использующему его
скрипту,  а   потому  часть   экземпляров  "запомнила"  старый, а  к остальным
попал уже "новый".
<<- Что означает ругань "Value of $x will not stay shared at - line 5" и"Constant subroutine XXX redefined ..." при попытке запустить скрипт припомощи mod_perl?
->> Как одновременно поставить куку и сделать редирект?

Русский PERL programming FAQ. Часто задаваемые вопросы по программированию на perl [К списку статей] [К оглавлению]






поиск провайдера подключение по модему интернет-карты хостинг colocation выделенная линия тестовые входы отзывы об провайдерах интернет форум о провайдерах работа у ISP

Каталог провайдеров / Articles / Web / Perl-ru-faq / faq-54.html



Advert

Предложений::

Dial-up: 919
Хостинг: 190
Colocation: 140
Выделенная линия: 735

Закажи выделенную линию!

Новые отзывы

Отзывы о Cтрим (Stream)
Sochi Communication Center
CENTRAL TELEGRAPH
MTU-Intel
Corbina telecom
2COM
Web Plus
TambovCNIT
Tel
RiNet ISP
MTW-hosting

Интересные ссылки

What's New?
Holms.ru
Adsmart.ru
how-to.ru

Рекомендуем


Copyright © 1999-2000 Чегляков Алексей, Required Group
Design Милашенко Анастасия, Hosted by Rinet ISPSite engine RWSM CMS