package A; sub new { my ($class, %args) = @_; bless \%args, $class; } sub foo { return shift->{foo} } sub printFoo { my ($self) = @_; # hier wirdleider direkt auf foo zugegriffen statt über den accessor! my $foo = $self->{foo}; say "foo is $foo"; } package B; @ISA = qw/ A /; sub foo { my ($self) = @_; return $self->foo() + 1 } package main; my $B = B->new( foo => 23 ); $B->printFoo;