---
name: "Type::Tiny::Manual::AllTypes"
section: "3pm"
platform: "linux"
package: "perl-type-tiny"
version: "2.010001-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Type::Tiny::Manual::AllTypes"
---

# Type::Tiny::Manual::AllTypes(3pm)

alphabetical list of all type constraints bundled with Type::Tiny

## NAME

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

## 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: \<https://github.com/tobyink/p5-type-tiny/tree/master/t/21-types\>.

- •

  **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

Here's your next step:

- •

  Type::Tiny::Manual::Policies

  Policies related to Type::Tiny development.

## AUTHOR

Toby Inkster \<tobyink@cpan.org\>.

## 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

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.
