in reply to Perl OO Disinheritence

* . I don't want Package B to implement method a3( ).

You could override it. Simple as can be, and very straight forward.

package B; use base 'A'; use Carp; use strict; sub a3 { croak sprintf q[Can't locate object method "a3" via package "%s"], ref shift; }

Please, no recommendations to refactor my classes.

But I really think you should.

U28geW91IGNhbiBhbGwgcm90MTMgY
W5kIHBhY2soKS4gQnV0IGRvIHlvdS
ByZWNvZ25pc2UgQmFzZTY0IHdoZW4
geW91IHNlZSBpdD8gIC0tIEp1ZXJk