Type::Params::Signature − internal representation of 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.
new(%attributes)
"new_from_compile($style, %attributes)"
new_from_v2api(\%attributes)
All attributes
are read−only.
"package" ClassName
The package we're providing a signature for. Will be used to look up any stringy type names.
"subname" Str
The sub we're providing a signature for.
"description"
Str
"method"
ArrayRef[InstanceOf['Type::Params::Parameter']]
"head"
ArrayRef[InstanceOf['Type::Params::Parameter']]
"tail"
ArrayRef[InstanceOf['Type::Params::Parameter']]
"parameters"
ArrayRef[InstanceOf['Type::Params::Parameter']]
"slurpy"
InstanceOf['Type::Params::Parameter']
"on_die" CodeRef
"strictness" Bool|ScalarRef
"next" CodeRef
"goto_next" CodeRef
Alias for "next".
"can_shortcut" Bool
Indicates whether the signature has no potential to alter @_ allowing it to be returned without being copied if type checks pass. Generally speaking, you should not provide this to the constructor and rely on Type::Params::Signature to figure it out.
"coderef" InstanceOf['Eval::TypeTiny::CodeAccumulator']
You probably don't want to provide this to the constructor. The whole point of this module is to build it for you!
Attributes
related to named parameters
"is_named" Bool
"allow_dash" Bool
"bless" Bool|ClassName
"class" ClassName
"constructor" Str
"class_attributes" HashRef
HashRef suitable for passing to the "import" method of Class::XSAccessor. A default will be generated based on "parameters"
"named_to_list" ArrayRef
Can be coerced from a bool based on "parameters".
"list_to_named"
Bool
"oo_trace" Bool
Defaults to true. Indicates whether blessed $arg hashrefs created by the signature will include a '˜˜caller' key.
Bare attributes
These attributes
may be passed to the constructors and may do something, but
no methods are provided to access the values later.
"positional" or "pos" ArrayRef
"named" ArrayRef
"multiple" or "multi" ArrayRef
"returns" Bool
Shortcut for setting "returns_scalar" and "returns_list" simultaneously.
"want_source"
Bool
"want_details" Bool
"want_object" Bool
"rationalize_slurpies" Bool
Predicates
Predicate
methods return true/false to indicate the presence or
absence of attributes.
"has_description"
"has_head"
"has_tail"
"has_parameters"
"has_slurpy"
"has_on_die"
"has_strictness"
"has_returns_scalar"
"has_returns_list"
Class making methods
These methods
will be called automatically during object construction and
should not typically be called. They are public methods in
case it is desired to subclass Type::Params::Signature.
"make_class_pp"
Builds the class specified in "bless" by evaluating Perl code.
"make_class_xs"
Builds the class specified in "bless" using Class::XSAccessor.
"make_class"
Calls either "make_class_pp" or "make_class_xs".
"make_class_pp_code"
Generates the code for "make_class_pp".
Other
methods
"BUILD"
Called by the constructors. You should not call this.
"return_wanted"
Normally returns the signature coderef, unless "want_source", "want_details", or "want_object" were provided to the constructor, in which case it will return the source code for the coderef, a hashref of details, or $self.
"PERL_TYPE_PARAMS_XS"
Affects the building of accessors for $arg objects. If set to true, will use Class::XSAccessor. If set to false, will use pure Perl. If this environment variable does not exist, will use Class::XSAccessor.
If Class::XSAccessor is not installed or is too old, pure Perl will always be used as a fallback.
Please report any bugs to <https://github.com/tobyink/p5−type−tiny/issues>.
Type::Params, Type::Params::Parameter, Type::Params::Alternatives.
Toby Inkster <[email protected]>.
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.