package My::Session; use Moose; use namespace::autoclean; with 'My::Role::PersistsData'; use CGI; use CGI::Session ('-ip_match'); use CGI::Carp qw/fatalsToBrowser warningsToBrowser/; sub start{ my($self) = @_; my $cgi = $self->cgi(); $self->log("Session Started!"); } sub cgi{ my($self) = @_; $self->_cgi = $self->_build_cgi() unless $self->_cgi; return ($self->_cgi); } sub _build_cgi{ my($self) = @_; my $cgi = CGI->new(); if(!$cgi){ #print "mising cgi"; } return ( $cgi ); } sub _build_sss{ my($self) = @_; my $cgi = $self->cgi(); my $sid = $cgi->cookie("CGISESSID") || $cgi->param('CGISESSID') || undef; $self->log("Session ID Initial is: ".($sid?$sid:"undef")); my $sss = CGI::Session->new(undef, $cgi, {Directory=>'tmp'}) or die CGI::Session->errstr; my $cookie = $cgi->cookie(CGISESSID => $sss->id() ); $self->log("Resulting Session ID is: ".$sid." cookie is: ".$cookie); print $cgi->header( -cookie=>$cookie ); return ( $sss ); }