Hi,

Currently, I'm writing my second application that uses Object Oriented Perl. I ran into a problem that I don't understand how to solve. I have two classes: one of them is the parent class of the other. The parent class ties to a database, and then the child class is initialized with the data from the parent class. Let's say the data in the child class changes. Then, how do I make sure the changes propagate back to the parent class and then are saved to the database? If I inherit DESTROY() method from the parent class, then it would save the changes in the child class, but they are then overwritten by DESTROY() method of the parent class with parent class' data.

Below are the relevant code samples. What's The Right Way (TM) of doing something like that?

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? }

In reply to Inheritance and objects tied to a database by relax99

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.