BSDPORTAL.RU
http://bsdportal.ru/

FreeBSD 8.1-STABLE amd64, Apache 2.2.17, mod_perl 2.0.4
http://bsdportal.ru/viewtopic.php?f=59&t=23858
Страница 1 из 1

Автор:  OldMan [ Ср 01 дек, 2010 2:01 pm ]
Заголовок сообщения:  FreeBSD 8.1-STABLE amd64, Apache 2.2.17, mod_perl 2.0.4

Доброго времени суток всем.

Господа, помогите разобраться с особенностями программирования под mod_perl.
httpd.conf:
Код:
LoadModule perl_module libexec/apache22/mod_perl.so
Alias /cgi-perl/ "/usr/local/www/cgi-perl/"
PerlModule ModPerl::PerlRun
<Location /cgi-perl>
SetHandler perl-script
PerlHandler ModPerl::PerlRun
Options +ExecCGI
PerlSendHeader On
Order allow,deny
Allow from all
</Location>

Делаю вот такую страничку:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
</head>
<body>
   <!--#include virtual="/cgi-perl/test.pl?p=12345"-->
   <!--#include virtual="/cgi-perl/test.pl?p=67890"-->
</body>
</html>

Скрипт test.pl выглядет так:
Код:
#!/usr/bin/perl

use strict;
use CGI qw( :all );
use CGI::Pretty qw( :html4 );

my $cgi = CGI->new();
print $cgi->header( -type=>'text/html',-charset=>'utf-8' );

my $test = $cgi->param("p");
print $cgi->h3( $test );

exit;

Результат такой:
Код:
12345
12345

Документацию на perl.apache.org читал. Читал, что глобальные переменные кешируются, но кешируются если использовать ModPerl::Registry, а при использовании ModPerl::PerlRun, вроде как они должны очищаться.
В скриптах, которые мне надо адаптировать под mod_perl, на основании параметров, поступивших на вход, производятся те или иные действия. Соответственно значения присваиваются нескольким глобальным переменным, которые потом проверяются. А как так сделать, чтобы эти переменные не кешировались я никак не пойму, и как отказаться от использования глобальных переменных в моём случае я тоже пока не могу понять.
Господа, может кто-то боролся с подобной задачей и победил? Поделитесь опытом.
Заранее благодарен за помощь.

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/