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

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

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

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

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

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.

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

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

Toby Inkster <tobyink@cpan.org>.

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.

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.

2025-07-14 perl v5.42.0