package PkgA; use List::Util qw( first ); BEGIN { our @ISA = qw( ... ); } sub foo { 'Whee!' } sub check { return first { $_->can('foo') } @ISA; } #### package PkgA; BEGIN { our @ISA = qw( ... ); } my $overrides_foo; BEGIN { $overrides_foo = __PACKAGE__->can('foo'); } sub foo { 'Whee!' } sub check { return $overrides_foo; }