Page 2... use strict; use CGI::Session; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use CGI; my $cgi = new CGI; my $session = new CGI::Session(undef, $cgi, {Directory=>'/tmp'}); my $cookie = $cgi->cookie(CGISESSID => $session->id ); print $cgi->header(-cookie=>$cookie); my $name = $session->param("l_name"); print $name; I found one example on the web which isnt working and comes up with "You have not logged in". Page one... use CGI; use CGI::Carp qw/fatalsToBrowser warningsToBrowser/; use CGI::Session ( '-ip_match' ); $q = new CGI; $usr = $q->param('usr'); $pwd = $q->param('pwd'); if($usr ne '') { # process the form if($usr eq "demo" and $pwd eq "demo") { $session = new CGI::Session(); print $session->header(-location=>'index.pl'); } else { print $q->header(-type=>"text/html",-location=>"login.pl"); } } elsif($q->param('action') eq 'logout') { $session = CGI::Session->load() or die CGI::Session->errstr; $session->delete(); print $session->header(-location=>'login.pl'); } else { print $q->header; print < Username: Password: HTML }