in reply to Data inheritance

I think you're asking how to store an array to the object.

package Base; use strict; use warnings; sub new { my $class = shift; return bless({}, $class); } 1;
package Child; use strict; use warnings; use Base; our @ISA = qw( Base ); sub new { my $class = shift; my $self = $class->SUPER::new(); $self->{nums} = [qw( 1 2 )]; return $self; } 1;

Replies are listed 'Best First'.
Re^2: Data inheritance
by perlbaski (Sexton) on Sep 23, 2011 at 21:00 UTC
    So this code isnt working..
    CommonObject.pm my $some_var; #constructor sub new{ my $class=shift; my $self = {} ; bless $self, $class; print Dumper($self); return $self; } MyObject.pm our @ISA = qw( CommonObject ); sub new{ my $class=shift; $testName=shift; my $self = CommonObject->new(); $self->some_var="abcd"; return $self; }
    I want to be able to set some_var here. I get error Global symbol "$some_var" requires explicit package name. Isnt inheritance supposed to get the variable into MyObject??

      The code you posted does not produce that error.

      The code you posted fails for a different reason: You are trying to assign a scalar to a method call ($self->some_var="abcd";).

        Hey..yes..that was a typo..i cant copy paste my code here. I had $self->$some_var="abcd";#This was not the problem.
        package CommonObject; my $some_var; #constructor sub new{ my $class=shift; my $self = {} ; bless $self, $class; print Dumper($self); return $self; } 1; package MyObject; our @ISA = qw( CommonObject ); use strict; use warnings; sub new{ my $class=shift; my $testName=shift; my $self = CommonObject->new(); $self->$some_var="abcd"; print $self->$some_var; return $self; } 1; #!/usr/bin/perl use MyObject; my $obj=MyObject->new("lkj");
        Thats the exact code
        Then why is it called inheritance?? Sorry for the persistent naive questions..
        It does, I had use strict and use warnings in MyObject.pm :(