|Welcome to the Monastery
Obviously, I should be able to replace the anonymous subroutine with a straight reference to set_foo.
But then you wouldn't have the object to call set_foo upon. If that's desirable (e.g. set_foo is a class method) then you can reference it with \&Fooclass::set_foo. But it sounds like it's an object method, so you'll need the object to call it on.
If you have the object available outside of your dispatcher's anon subs, then you can just use the actual method name: