use strict; use warnings 'all'; package A; sub _write_file { print "Writing in package A\n"; } sub write_file { my $self = shift; $self->_write_file(@_); } package A::B; use base qw/A/; sub new { my $class = shift; bless {} => $class; } sub _write_file { print "Writing in package A::B\n"; } my $writer = A::B->new; $writer->write_file;