Type::Parser(3) User Contributed Perl Documentation Type::Parser(3)

# [NAME](#NAME)

Type::Parser - parse type constraint strings

# [SYNOPSIS](#SYNOPSIS)

```
 use v5.10;
 use strict;
 use warnings;
 
 use Type::Parser qw( eval_type );
 use Type::Registry;
 
 my $reg = Type::Registry->for_me;
 $reg->add_types("Types::Standard");
 
 my $type = eval_type("Int | ArrayRef[Int]", $reg);
 
 $type->check(10);        # true
 $type->check([1..4]);    # true
 $type->check({foo=>1});  # false
```

# [STATUS](#STATUS)

This module is covered by the Type-Tiny stability policy.

# [DESCRIPTION](#DESCRIPTION)

Generally speaking, you probably don't want to be using this module directly. Instead use the "lookup" method from Type::Registry which wraps it.

## [Functions](#Functions)

[parse($string)](#parse%28$string%29)

Parse the type constraint string into something like an AST.

If called in list context, also returns any "tail" found on the original string.

"extract\_type($string, $registry)"

Compile a type constraint string into a Type::Tiny object.

If called in list context, also returns any "tail" found on the original string.

"eval\_type($string, $registry)"

Compile a type constraint string into a Type::Tiny object.

Throws an error if the "tail" contains any non-whitespace character.

## [Constants](#Constants)

The following constants correspond to values returned by "$token-&gt;type".

"TYPE"

"QUOTELIKE"

"STRING"

"HEXNUM"

"CLASS"

"L\_BRACKET"

"R\_BRACKET"

"COMMA"

"SLURPY"

"UNION"

"INTERSECT"

"SLASH"

"NOT"

"L\_PAREN"

"R\_PAREN"

"MYSTERY"

# [BUGS](#BUGS)

Please report any bugs to &lt;https://github.com/tobyink/p5-type-tiny/issues&gt;.

# [SEE ALSO](#SEE_ALSO)

Type::Registry.

# [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-06-28 perl v5.42.2

---

Document: Type::Parser(3pm) from perl-type-tiny 2.010001-r3 (Chainguard OS)
Source: https://github.com/tobyink/p5-type-tiny
