package Control; sub new { my $class = shift; my $self = bless {}, ref($class) || $class; my $cgi = CGI::Minimal->new; # retrieve request info my $session_id = $cgi->param("session_id"); my $action = $cgi->param("action"); my $dbh = Area::DB::connect(\$_connected) if !$_connected; tie %{$self}, "Tie::ODBCSession", $dbh, $session_id; # store action in the object $self->{action} = $action; return $self; } sub DESTROY { my $self = shift; untie %{$self}; } package Control::Main; @Control::Main::ISA = qw(Control); sub new { my $class = shift; my %args = @_; my $self = {}; bless $self, $class; # initialize with named parameters passed %{$self} = map { $_ => $args{$_} } keys(%args); return $self; } sub DESTROY { my $self = shift; # What do I do here? }