---
name: "Type::Params::Parameter"
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::Params::Parameter"
---

# Type::Params::Parameter(3pm)

internal representation of a parameter in a function signature

## NAME

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

## STATUS

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

## DESCRIPTION

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

### Constructor

- new(%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

*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

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

## SEE ALSO

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

## AUTHOR

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

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

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.
