Здрасти, винаги се радвам, когато някой реши да премине от нещо друго на Perl. То е защото започнах с него и досега (вече четири години и нещо) не успявам да науча друг (сериозен) език.Perl винаги има някакъв модул за дадена задача, която ми се налага да свърша. От обработка на PDF до писане и четене на/от серийни портове...
И така:
За тебе препоръчвам Apache::ASP.
По-принцип този модул работи и в CGI среда, но истински разгръща мощтта си когато отдолу е Apache/mod_perl.
Поддръжката на сесии е само едно от нещатта които ме накараха да се влюбя в този модул. Той е нещо като Applicatiopn Server.
За да започнеш бързо:
http://www.apache-asp.org/Уроци от автора на Модула:
http://www.apache-asp.org/resources.htmlПомагал ми е със съвети много тоя човек...
Запиши се в маилинг листата на модула в Yahoo
Имам два сериозни сайта, базирани на това чудо и съм потресен от скоростта, с която можеш да сглобяваш парчета HTML и Perl
Модулът е точно за такива като тебе. Има всичко за което можеш да се сетиш, че и отгоре.
Други подобни модули са:
Apache::PageKit
AxKit
The bivio OLTP Platform (bOP)
Embperl
Mason
и много други. Да ембедваш перл, по начина, по който мислиш. Просто избираш който ти уидисва най-много.
Mason и Apache::ASP са ми любимите.
Прочети това
http://perl.apache.org/products/app-server.htmlи това ако искаш
http://berov.data.bg/Perl/Мисля, че всичко изброено до тук ще ти даде летящ старт
Успех!!

'>
А...
И за малко да забравя. Въпросът ти беше за сесиите...
Виж как става в Apache::ASP
http://www.apache-asp.org/objects.htmlТази подпрограма се намира във файла global.asa -сърцето на всяко ASP-приложение.
Това е парче от реално работещ в производствени условия
код.
Примерен код |
#global.asa use vars qw|$ROOT $HOME $pages $Site $p $p1 $dbh $sth $error $tree |; #глобални променливи - навсякъде, във всички страници и #includes са видими (персистентни са, т.е. живеят между #различни зявки и пренасят стойността си) #use utf8;
use DBI;#Бази данни use Data::Dumper;# За дъмпване на структури #докато разработваш #в производствени условия не ти трябва require "../F8online.pm"; #мой си някакъв модул $HOME="http://".$ENV{HTTP_HOST}."/"; $ROOT=$ENV{DOCUMENT_ROOT}; #събитие като в Микрософт ASP sub Script_OnStart{ $Response->{Charset}="utf-8"; unless($dbh && eval { $dbh->ping }) { $dbh = DBI->connect( "DBI:mysql:database=imetonabazata",'user',"password", { PrintError => 1, # warn( ) on errors RaiseError => 0, # don't die on error AutoCommit => 1, # commit executes immediately } )||print$DBI::errstr; } $p=$Request->Params("p")||"index"; $p1=$Request->Params("p1")||"index"; #някакви параметри
$Site=F8online->new(); #мой си някакъв модул $Response->{Expires}=-1000; #Управление на сесията if($Request->Params("logout")) { $Session->Abandon(); $Response->Redirect("index.asp?abandon=".$Session->{usr}); if(defined $dbh && eval { $dbh->ping }) { $dbh->disconnect; undef $dbh; } }
$Session->{count}++;
if(!$Session->{menu}){ REFRESH_menu(); } #мои си някакви неща
}
|
УСПЕХ пак
'>