in reply to Exported subroutine redefine

Probably the cleanest way to achieve this, is to have in Redefine:
package Redefine; use Module qw(name all not redefined functions here); use base 'Exporter'; our @EXPORT = qw(name all exported functions including those from Modu +le here); sub redefined_function { ... }
And then replace all 'use Module' statements with 'use Redefine'. Which is at least fairly easy to do and check automatically for most cases, and you won't have to worry about re-re-defining functions, since you're not re-defining functions anymore.