Is there already a module that will turn a list of subroutines into no-ops? I'm doing this to disable features in production code, not testing, and only because other work-arounds are intractable. It's monkeypatching to give a class a lobotomy.
I know about Curtis's Sub::Override, so I might just write a wrapper around that for an interface that looks something like:
use Sub::Nerf;
nerf( $return_value, @list_of_subs ); # all subs just return $return_value
unnerf( @list_of_subs ); # back to where we started
In Hook::LexWrap, you can make the pre-hook sub return prematurely, instead of going on to running the real, original sub. You do that by assigning a return value to the extra parameter that it gets. See Short-circuiting and long-circuiting return values