Update: sorry, this is rubbish - see Re^5: How to redefine a modules private function?
Can't get AnyEvent installed ATM, but your little demo
does work, if you don't "re"define it, but define it
before you load the module:
Foo.pm as in your example
test2.pl
use warnings;
use strict;
use lib '.';
BEGIN {
sub Foo::ONE () { 444 }
sub Foo::TWO { 555 }
sub Foo::THREE () { 666 }
}
use Foo; # _after_ your "re"definitions
Foo::go;
print "One=", Foo::ONE, ", Two=", Foo::TWO, ", Three=", Foo::THREE, "\
+n";