in reply to Apache::Session

Make a module and do everything there. There are some examples in the Apache::Session docs. You did read them didn't you. ;-) This code is untested of course, but you could use something like:
package MySession; use strict; use Apache::Session::Whatever; sub new { my $self = bless( {}, shift }; $self->init(); return $self; } sub init { my $self = shift; my %session; tie %session, Apache::Session::Whatever, undef; $self->{session} = \%session; return $self->{session}; } sub get_session { my $self = shift; return $self->{session}; } sub close { my $self = shift; # Now properly untie the hash using the right method tied($self->{session})->close; untie($self->{session}); } sub DESTROY { my $self = shift; $self->close(); }
Then in your app code just use the module and create a new object.
use MySession; my $session = MySession->new()->get_session(); $session->{foo} = "bar"; $sesobj->close();