package Foo; sub new { bless {}, shift } sub _method1 { print "Foo::_method\n"; } sub method2 { my $self = shift; $self->_method1 } package Foo::Bar; @ISA = qw( Foo ); sub _method1 { print "Foo::Bar::_method\n"; } package main; my $foobar = Foo::Bar->new; $foobar->method2;