---
name: "Moose::Meta::TypeConstraint::Union"
section: "3pm"
platform: "linux"
package: "perl-moose"
version: "2.4001-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Moose::Meta::TypeConstraint::Union"
---

# Moose::Meta::TypeConstraint::Union(3pm)

A union of Moose type constraints

## NAME

Moose::Meta::TypeConstraint::Union - A union of Moose type constraints

## VERSION

version 2.4001

## DESCRIPTION

This metaclass represents a union of type constraints. A union takes multiple type constraints, and is true if any one of its member constraints is true.

## INHERITANCE

`"Moose::Meta::TypeConstraint::Union"` is a subclass of Moose::Meta::TypeConstraint.

## METHODS

### Moose::Meta::TypeConstraint::Union-\>new(%options)

This creates a new class type constraint based on the given `%options`.

It takes the same options as its parent. It also requires an additional option, `"type_constraints"`. This is an array reference containing the Moose::Meta::TypeConstraint objects that are the members of the union type. The `"name"` option defaults to the names all of these member types sorted and then joined by a pipe (\|).

The constructor sets the implementation of the constraint so that is simply calls `"check"` on the newly created object.

Finally, the constructor also makes sure that the object's `"coercion"` attribute is a Moose::Meta::TypeCoercion::Union object.

### $constraint-\>type\_constraints

This returns the array reference of `"type_constraints"` provided to the constructor.

### $constraint-\>parent

This returns the nearest common ancestor of all the components of the union.

### $constraint-\>check($value)

### $constraint-\>validate($value)

These two methods simply call the relevant method on each of the member type constraints in the union. If any type accepts the value, the value is valid.

With `"validate"` the error message returned includes all of the error messages returned by the member type constraints.

### $constraint-\>equals($type\_name\_or\_object)

A type is considered equal if it is also a union type, and the two unions have the same member types.

### $constraint-\>find\_type\_for($value)

This returns the first member type constraint for which `check($value)` is true, allowing you to determine which of the Union's member type constraints a given value matches.

### $constraint-\>is\_a\_type\_of($type\_name\_or\_object)

This returns true if all of the member type constraints return true for the `"is_a_type_of"` method.

### $constraint-\>is\_subtype\_of

This returns true if all of the member type constraints return true for the `"is_subtype_of"` method.

### $constraint-\>create\_child\_type(%options)

This returns a new Moose::Meta::TypeConstraint object with the type as its parent.

## BUGS

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

## AUTHORS

- •

  Stevan Little \<stevan@cpan.org\>

- •

  Dave Rolsky \<autarch@urth.org\>

- •

  Jesse Luehrs \<doy@cpan.org\>

- •

  Shawn M Moore \<sartak@cpan.org\>

- •

  יובל קוג'מן (Yuval Kogman) \<nothingmuch@woobling.org\>

- •

  Karen Etheridge \<ether@cpan.org\>

- •

  Florian Ragwitz \<rafl@debian.org\>

- •

  Hans Dieter Pearcey \<hdp@cpan.org\>

- •

  Chris Prather \<chris@prather.org\>

- •

  Matt S Trout \<mstrout@cpan.org\>

## COPYRIGHT AND LICENSE

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.
