in reply to CGI::Session appears to be overwriting itself

You may require rest :)
#!/usr/bin/perl -- use strict; use warnings; use CGI(); use CGI::Session(); my( $oneid, $twoid); { my $one = CGI::Session->new or die CGI::Session->errstr; my $two = CGI::Session->new or die CGI::Session->errstr; $one->param( is => 'is one'); $two->param( is => 'is two'); $oneid = $one->id; $twoid = $two->id; } { my $bob = CGI::Session->load( $oneid ) or die CGI::Session->errstr +; my $dod = CGI::Session->new( $twoid ) or die CGI::Session->errstr; warn 'bob : ', $bob->param('is'); warn 'dod : ', $dod->param('is'); } { my $cgi = CGI->new( { CGISESSID => $oneid }); my $ses = CGI::Session->load( $cgi ) or die CGI::Session->errstr; warn 'ses : ', $ses->param('is'); } __END__ bob : is one at cgi-session-ex.pl line 22. dod : is two at cgi-session-ex.pl line 23. ses : is one at cgi-session-ex.pl line 29.