Hello all,
I am wondering if you can have object inherited between
packages when the child packages have their own object
creation without explicitly setting the parent object in
the child? Is there a way to inherit the parent object?
Example below (sorry for the length).
TIA,
Shawn
A.pm
package A;
use strict;
sub new {
my($class)=shift;
my $self={};
bless $self,ref $class || $class;
return $self;
}
sub func {
my $self=shift;
$self->{A_FUNC}=shift;
}
sub func2 {
my $self=shift;
require A::B;
my $self->{A__B_OBJECT}=A::B->new();
return $self->{A__B_OBJECT}->func();
}
B.pm
package A::B;
A::B::ISA=qw(A);
use strict;
sub new {
my($class)=shift;
my $self={};
bless $self,ref $class || $class;
return $self;
}
sub func {
my $self=shift;
$self->{A__B_FUNC}=$self->{A_FUNC}/2;
# I know this does not work, but that
# is why I am asking the question
}
Versus passing the A object explicitly:
A.pm
package A;
use strict;
sub new {
my($class)=shift;
my $self={};
bless $self,ref $class || $class;
return $self;
}
sub func {
my $self=shift;
$self->{A_FUNC}=shift;
}
sub func2 {
my $self=shift;
require A::B;
my $self->{A__B_OBJECT}=A::B->new();
$self->{A__B_OBJECT}->set_A($self);
return $self->{A__B_OBJECT}->func;
}
B.pm
package A::B;
A::B::ISA=qw(A);
use strict;
sub new {
my($class)=shift;
my $self={};
bless $self,ref $class || $class;
return $self;
}
sub set_A {
my $self=shift;
$self->{A_OBJECT}=shift;
}
sub func {
my $self=shift;
$self->{A__B_FUNC}=$self->{A_OBJECT}->{A_FUNC}/2;
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>