Type::Params::Parameter(3) User Contributed Perl Documentation Type::Params::Parameter(3)

# [NAME](#NAME)

Type::Params::Parameter - internal representation of a parameter in a function signature

# [STATUS](#STATUS)

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

# [DESCRIPTION](#DESCRIPTION)

This is mostly internal code, but can be used to provide basic introspection for signatures.

## [Constructor](#Constructor)

[new(%attributes)](#new%28_attributes%29)

## [Attributes](#Attributes)

All attributes are read-only.

"type" **TypeTiny**

Type constraint for the parameter.

"default" **CodeRef|ScalarRef|Ref|Str|Undef**

A default for the parameter: either a coderef to generate a value, a reference to a string of Perl code to generate the value, an a reference to an empty array or empty hash, a literal string to use as a default, or a literal undef to use as a default.

"strictness" **Bool|ScalarRef**

A boolean indicating whether to be stricter with type checks, or a reference to a string of Perl code naming a Perl variable or constant which controls strict behaviour.

"clone" **Bool**

The method for accessing this is called "should\_clone" for no particular reason.

"coerce" **Bool**

Defaults to true if "type" has a coercion.

"optional" **Bool**

Defaults to true if there is a "default" or if "type" is a subtype of **Optional**.

"in\_list" **Bool**

Boolean that is only used when the signature has the "list\_to\_named" feature enabled.

"default\_on\_undef" **Bool**

Should the default be triggered if the caller passes an explicit undef?

*Attributes related to named parameters*

"name" **Str**

"alias" **ArrayRef\[Str]**

"getter" **Str**

"predicate" **Str**

## [Methods](#Methods)

*Predicates*

Predicate methods return true/false to indicate the presence or absence of attributes.

"has\_type"

"has\_default"

"has\_strictness"

"has\_name"

"has\_alias"

*Other methods*

"might\_supply\_new\_value"

Indicates that the parameter can't simply be referenced within @_ because a default value might be used, the given value might be coerced, or the given value might be cloned using Storable.

# [BUGS](#BUGS)

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

# [SEE ALSO](#SEE_ALSO)

Type::Params, Type::Params::Signature.

# [AUTHOR](#AUTHOR)

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

# [COPYRIGHT AND LICENCE](#COPYRIGHT_AND_LICENCE)

This software is copyright (c) 2023-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::Params::Parameter(3pm) from perl-type-tiny 2.010001-r3 (Chainguard OS)
Source: https://github.com/tobyink/p5-type-tiny
