Type::Tiny::Manual::AllTypes(3) User Contributed Perl Documentation Type::Tiny::Manual::AllTypes(3)

# [NAME](#NAME)

Type::Tiny::Manual::AllTypes - alphabetical list of all type constraints bundled with Type::Tiny

# [MANUAL](#MANUAL)

The following is a list of type constraints bundled with Type::Tiny, with very brief descriptions. For more information, see the type library's documentation, and the test cases in "t/21-types/".

GitHub link: &lt;https://github.com/tobyink/p5-type-tiny/tree/master/t/21-types&gt;.

- **Any** in Types::Standard
  
  Anything. Absolutely anything.
- **ArrayLike** *\[parameterizable]* in Types::TypeTiny
  
  Arrayrefs and objects overloading arrayfication.
- **ArrayRef** *\[parameterizable]* in Types::Standard
  
  Arrayrefs.
- **Bool** *\[has coercion]* in Types::Standard
  
  Booleans; the numbers or strings "0" and "1", the empty string, or undef.
- **BoolLike** in Types::TypeTiny
  
  Similar to **Bool**, but without coercions, and accepts objects overloading "bool".
- **ClassName** in Types::Standard
  
  Any loaded package name.
- **CodeLike** in Types::TypeTiny
  
  Coderefs and objects overloading coderefification.
- **CodeRef** in Types::Standard
  
  Coderefs.
- **ConsumerOf** *\[parameterizable]* in Types::Standard
  
  An object that DOES a particular role.
- **CycleTuple** *\[parameterizable]* in Types::Standard
  
  An arrayref with a repeating pattern of constraints on its values.
- **Defined** in Types::Standard
  
  Any value other than undef.
- **DelimitedStr** *\[parameterizable]* in Types::Common::String
  
  A comma-delimited or other delimited string.
- **Dict** *\[parameterizable]* in Types::Standard
  
  A hashref with constraints on each of its values.
- **Enum** *\[parameterizable]* in Types::Standard
  
  A string from an allowed set of strings.
- **\_ForeignTypeConstraint** in Types::TypeTiny
  
  A coderef or an object which Type::Tiny knows how to convert into a Type::Tiny instance. (Yes, the name of this type starts with an underscore.)
- **FileHandle** in Types::Standard
  
  A reference where Scalar::Util::openhandle returns true, or a blessed object in the IO::Handle class.
- **GlobRef** in Types::Standard
  
  Globrefs
- **HashLike** *\[parameterizable]* in Types::TypeTiny
  
  Hashrefs and objects overloading hashrefification.
- **HashRef** *\[parameterizable]* in Types::Standard
  
  Hashrefs.
- **HasMethods** *\[parameterizable]* in Types::Standard
  
  An object that can do particular methods.
- **InstanceOf** *\[parameterizable]* in Types::Standard
  
  An object that isa particular class.
- **Int** in Types::Standard
  
  A whole number, either positive, negative, or zero.
- **IntRange** *\[parameterizable]* in Types::Common::Numeric
  
  An integer within a particular numeric range.
- **Item** in Types::Standard
  
  Any single item; effectively the same as **Any**.
- **LaxNum** in Types::Standard
  
  A number; relaxed constraint that allows "inf".
- **LowerCaseSimpleStr** *\[has coercion]* in Types::Common::String
  
  A string less than 256 characters long with no line breaks or uppercase letters.
- **LowerCaseStr** *\[has coercion]* in Types::Common::String
  
  A string with no uppercase letters.
- **Map** *\[parameterizable]* in Types::Standard
  
  A hashref with a constraint for the values and keys.
- **Maybe** *\[parameterizable]* in Types::Standard
  
  When parameterized, the same as its parameter, but also allows undef.
- **NegativeInt** in Types::Common::Numeric
  
  An integer below 0.
- **NegativeNum** in Types::Common::Numeric
  
  A number below 0.
- **NegativeOrZeroInt** in Types::Common::Numeric
  
  An integer below 0, or 0.
- **NegativeOrZeroNum** in Types::Common::Numeric
  
  A number below 0, or 0.
- **NonEmptySimpleStr** in Types::Common::String
  
  A string with more than 0 but less than 256 characters with no line breaks.
- **NonEmptyStr** in Types::Common::String
  
  A string with more than 0 characters.
- **Num** in Types::Standard
  
  The same as **LaxNum** or **StrictNum** depending on environment.
- **NumericCode** *\[has coercion]* in Types::Common::String
  
  A string containing only digits.
- **NumRange** *\[parameterizable]* in Types::Common::Numeric
  
  A number within a particular numeric range.
- **Object** in Types::Standard
  
  A blessed object.
- **Optional** *\[parameterizable]* in Types::Standard
  
  Used in conjunction with **Dict**, **Tuple**, or **CycleTuple**.
- **OptList** in Types::Standard
  
  An arrayref of arrayrefs, where each of the inner arrayrefs are two values, the first value being a string.
- **Overload** *\[parameterizable]* in Types::Standard
  
  An overloaded object.
- **Password** in Types::Common::String
  
  A string at least 4 characters long and less than 256 characters long with no line breaks.
- **PositiveInt** in Types::Common::Numeric
  
  An integer above 0.
- **PositiveNum** in Types::Common::Numeric
  
  A number above 0.
- **PositiveOrZeroInt** in Types::Common::Numeric
  
  An integer above 0, or 0.
- **PositiveOrZeroNum** in Types::Common::Numeric
  
  An number above 0, or 0.
- **Ref** *\[parameterizable]* in Types::Standard
  
  Any reference.
- **RegexpRef** in Types::Standard
  
  A regular expression.
- **RoleName** in Types::Standard
  
  Any loaded package name where there is no \`new\` method.
- **ScalarRef** *\[parameterizable]* in Types::Standard
  
  Scalarrefs.
- **SimpleStr** in Types::Common::String
  
  A string with less than 256 characters with no line breaks.
- **SingleDigit** in Types::Common::Numeric
  
  A single digit number. This includes single digit negative numbers!
- **Slurpy** *\[parameterizable]* in Types::Standard
  
  Used in conjunction with Dict or Tuple.
- **Str** in Types::Standard
  
  A string.
- **StrictNum** in Types::Standard
  
  A number; strict constraint.
- **StringLike** in Types::TypeTiny
  
  Strings and objects overloading stringification.
- **StrLength** *\[parameterizable]* in Types::Common::String
  
  A string with length in a particular range.
- **StrMatch** *\[parameterizable]* in Types::Standard
  
  A string matching a particular regular expression.
- **StrongPassword** in Types::Common::String
  
  A string at least 4 characters long and less than 256 characters long with no line breaks and at least one non-alphabetic character.
- **Tied** *\[parameterizable]* in Types::Standard
  
  A reference to a tied variable.
- **Tuple** *\[parameterizable]* in Types::Standard
  
  An arrayref with constraints on its values.
- **TypeTiny** *\[has coercion]* in Types::TypeTiny
  
  Blessed objects in the Type::Tiny class.
- **Undef** in Types::Standard
  
  undef.
- **UpperCaseSimpleStr** *\[has coercion]* in Types::Common::String
  
  A string less than 256 characters long with no line breaks or lowercase letters.
- **UpperCaseStr** *\[has coercion]* in Types::Common::String
  
  A string with no lowercase letters.
- **Value** in Types::Standard
  
  Any non-reference value, including undef.

The module Types::Common incorporates all of the above.

# [NEXT STEPS](#NEXT_STEPS)

Here's your next step:

•

Type::Tiny::Manual::Policies

Policies related to Type::Tiny development.

# [AUTHOR](#AUTHOR)

Toby Inkster &lt;tobyink@cpan.org&gt;.

# [COPYRIGHT AND LICENCE](#COPYRIGHT_AND_LICENCE)

This software is copyright (c) 2013-2014, 2017-2025 by Toby Inkster.

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

# [DISCLAIMER OF WARRANTIES](#DISCLAIMER_OF_WARRANTIES)

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

2026-10-25 perl v5.44.0

---

Document: Type::Tiny::Manual::AllTypes(3pm) from perl-type-tiny 2.010001-r4 (Chainguard OS)
Source: https://github.com/tobyink/p5-type-tiny
