I have a parent class from which two I derive two child classes. The new () of both the child classes call parent class constructor.
package superModule;
my $self;
sub new(){
my $class=shift;
my %params=@_;
$self=(bless({"dbh"=>$params{"DB"}},$class));
return $self;
}
sub printSuper(){
print "Super module:".$self->{dbh}."\n";
}
package myModule;
@ISA=(superModule);
my $self;
sub new(){
my $class=shift;
%params=@_;
my $parentObj=superModule->new(%params);
$self=(bless({"file_name"=>$params{"file name"}},$class));
$self->{"parent"}=$parentObj;
return $self;
}
sub printFile(){
print "My file name from file obj ".$self->{file_name}."\n";
}
package yourModule;
@ISA=(superModule);
my $self;
sub new(){
my $class=shift;
%params=@_;
my $parentObj=superModule->new(%params);
$self=bless({"block_name"=>$params{"block name"}},$class);
$self->{"parent"}=$parentObj;
return $self;
}
sub printBlock(){
print "My Block name from block obj ".$self->{block_name}."\n";
}
return 1;
use myModule;
use yourModule;
my %f_params=(DB=>"File DB value","file name"=>"Lisa");
my %b_params=(DB=>"Block DB vlaue","block name"=>"Pisa");
my $file_obj=myModule->new(%f_params);
my $block_obj=yourModule->new(%b_params);
$file_obj->printSuper();
$file_obj->printFile();
$block_obj->printSuper();
$block_obj->printBlock();
I see that Super module's dbh value is over written by yourModule input parameters. I see the problem self is getting overwritten, but is there a way I can keep the parent class variables separate in the two child class objects.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|