The with keyword allows you to apply roles to the local class or role. It differs from the with-option of the class and role keywords in that it applies the roles immediately instead of defering application until the end of the class- or role-definition.

It also differs slightly from the with provided by Moose in that it expands relative role names (::Foo) according to the currenc namespace.