sub new { my( $class, %args ) = @_; my $self = bless { %args }, $class my $query = CGI->new; my $sessionargs = $self->{sessionargs} || $default_sessionargs; my $session = CGI::Session->load( $sessionargs->{dsn}, $query, $sessionargs->{dsn_args}, ) or die CGI::Session->errstr; $self->{query} = $query; $self->{session} = $session; return $self; } sub param { my $self = shift; $self->{query}->param( @_ ); } sub session { $_[0]->{session}; } sub fandango { my( $self ) = @_; $self->param ...; ...; $self->session->param ...; ...; }