Name your accessors foo() and set_foo()http://search.cpan.org/dist/MooseX-SemiAffordanceAccessor/
This module does not provide any methods. Simply loading it changes the
default naming policy for the loading class so that accessors are separated
into get and set methods. The get methods have the same name as the
accessor, while set methods are prefixed with "set_".
If you define an attribute with a leading underscore, then the set method
will start with "_set_".
If you explicitly set a "reader" or "writer" name when creating an
attribute, then that attribute's naming scheme is left unchanged.
The name "semi-affordance" comes from David Wheeler's Class::Meta module.