You can use a role name as the value of handles: has 'uri' => ( is => 'ro', isa => 'URI', handles => 'HasURI', ); Moose will introspect the role to determine what methods it provides and create a name-for-name mapping for each of those methods.