Здрасти, винаги  се радвам, когато някой реши да премине от нещо друго на 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();
 }
 #мои си някакви неща
 
 }
 
 | 
УСПЕХ пак  '>
'>