in reply to Using can With Inheritance

I think that you are manually implementing inheritance. The following code:
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;
prints "Writing in package A::B" (followed by a newline, of course!), which seems to be what you want. The point is that, even though write_file is a method in package A, it's calling _write_file on an object blessed into package A::B. Am I misunderstanding what you're trying to do?