in reply to Is modifying the symbol table to redefine subroutines evil?

This approach to modifying the symbol-table after a first call is roughly the technique that we used when we implemented a deprecated module: use deprecated;
package OldeCrufte; use deprecated qw(do_hack); # calling OldeCrufte::do_hack() will carp
package OldeCrufte; use deprecated; # using the OldeCrufte module will carp

--
[ e d @ h a l l e y . c c ]