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;

