in reply to Reversing (some of) inheritance

How about this?

Package GetoptReplacer; sub foo { } sub bar { } our $baz; # magic! my %g = %Getopt::; %Getopt:: = %GetoptReplacer::; our $AUTOLOAD; sub AUTOLOAD { goto &$g{$AUTOLOAD}; } # less magic 1;

I don't know if this will catch fire, but there it is.