require Subroutines::RequireArgUnpack; # Add a fake parent. unshift @Subroutines::RequireArgUnpack::ISA = 'Subroutines::RequireArgUnpack::Fake'; # Put method you want to override in fake parent. *Subroutines::RequireArgUnpack::Fake = \&Subroutines::RequireArgUnpack::violates; # Override method in original class. *Subroutines::RequireArgUnpack::violates = sub { my ($self, @args) = @_; # Maybe call overriden method. $self->SUPER::violates(@args); };