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(); }