package FOO; sub new { my $type = shift; return bless {}, $type}; sub bar { my $self = shift; $self->FOO::private::BAZ}; package FOO::private; sub BAZ { print "in BAZ\n"}; package main; $a = FOO->new; $a->bar; ***** package FOO; sub new { my $type = shift; return bless {}, $type}; sub bar { my $self = shift; $self->FOO::private::BAZ}; package FOO::private; sub BAZ { print "in BAZ\n"}; package GOOP; @ISA = qw( FOO ); sub new { my $type = shift; return bless {}, $type}; sub BAZ { print "in GOOP::BAZ\n"}; package main; $a = GOOP->new; $a->bar; package FOO; sub new { my $type = shift; return bless {}, $type}; sub bar { my $self = shift; $self->BAZ}; sub BAZ { print "in BAZ\n"}; package GOOP; @ISA = qw( FOO ); sub new { my $type = shift; return bless {}, $type}; sub BAZ { print "in GOOP::BAZ\n"}; package main; $a = GOOP->new; $a->bar;