The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.


Moose::Meta::Role::Composite - An object to represent the set of roles


version 2.2207


A composite is a role that consists of a set of two or more roles.

The API of a composite role is almost identical to that of a regular role.


Moose::Meta::Role::Composite is a subclass of Moose::Meta::Role.



This returns a new composite role object. It accepts the same options as its parent class, with a few changes:

  • roles

    This option is an array reference containing a list of Moose::Meta::Role object. This is a required option.

  • name

    If a name is not given, one is generated from the roles provided.

  • apply_params(\%role_params)

    Creates a new RoleSummation role application with %role_params and applies the composite role to it. The RoleSummation role application class used is determined by the composite role's application_role_summation_class attribute.

  • reinitialize($metaclass)

    Like Class::MOP::Package->reinitialize, but doesn't allow passing a string with the package name, as there is no real package for composite roles.


See "BUGS" in Moose for details on reporting bugs.


  • Stevan Little <>

  • Dave Rolsky <>

  • Jesse Luehrs <>

  • Shawn M Moore <>

  • יובל קוג'מן (Yuval Kogman) <>

  • Karen Etheridge <>

  • Florian Ragwitz <>

  • Hans Dieter Pearcey <>

  • Chris Prather <>

  • Matt S Trout <>


This software is copyright (c) 2006 by Infinity Interactive, Inc.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.