Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Function::Parameters::User(Contributed Perl DocumFunction::Parameters::Info(3)

NAME
       Function::Parameters::Info - Information	about parameter	lists

SYNOPSIS
	 use Function::Parameters;

	 fun foo($x, $y, :$hello, :$world = undef) {}

	 my $info = Function::Parameters::info \&foo;
	 my @p0	= $info->invocants;	       # ()
	 my @p1	= $info->positional_required;  # ('$x',	'$y')
	 my @p2	= $info->positional_optional;  # ()
	 my @p3	= $info->named_required;       # ('$hello')
	 my @p4	= $info->named_optional;       # ('$world')
	 my $p5	= $info->slurpy;	       # undef
	 my $min = $info->args_min;  # 4
	 my $max = $info->args_max;  # inf

	 my @invocants = Function::Parameters::info(method () {	42 })->invocants;
	 # ('$self')

	 my $slurpy = Function::Parameters::info(fun (@) {})->slurpy;  # '@'

DESCRIPTION
       "Function::Parameters::info" returns objects of this class to describe
       parameter lists of functions. See below for "Parameter Objects".	 The
       following methods are available:

       $info-_invocants

       Returns a list of parameter objects for the variables into which
       initial arguments are "shift"ed automatically (or a count in scalar
       context). This will usually return "()" for normal functions and
       "('$self')" for methods.

       $info-_positional_required

       Returns a list of parameter objects for the required positional
       parameters (or a	count in scalar	context).

       $info-_positional_optional

       Returns a list of parameter objects for the optional positional
       parameters (or a	count in scalar	context).

       $info-_named_required

       Returns a list of parameter objects for the required named parameters
       (or a count in scalar context).

       $info-_named_optional

       Returns a list of parameter objects for the optional named parameters
       (or a count in scalar context).

       $info-_slurpy

       Returns a parameter object for the final	array or hash that gobbles up
       all remaining arguments,	or "undef" if no such thing exists.

       $info-_args_min

       Returns the minimum number of arguments this function requires. This is
       computed	as follows: Invocants and required positional parameters count
       1 each.	Optional parameters don't count. Required named	parameters
       count 2 each (key + value). Slurpy parameters don't count either
       because they accept empty lists.

       $info-_args_max

       Returns the maximum number of arguments this function accepts. This is
       computed	as follows: If there are any named or slurpy parameters, the
       result is "Inf".	 Otherwise the result is the number of all invocants
       and positional parameters.

       $info-_invocant

       Similar to "$info->invocants" above: Returns "undef" if the number of
       invocants is 0, a parameter object for the invocant if there is exactly
       1, and throws an	exception otherwise.

       Parameter Objects

       Many of the methods described above return parameter objects.  These
       objects have two	methods: "name", which returns the name	of the
       parameter (as a plain string), and "type", which	returns	the
       corresponding type constraint object (or	undef if there was no type
       specified).

       This should be invisible	if you don't care about	types because the
       objects also overload stringification to	call "name". That is, if you
       treat parameter objects like strings, they behave like strings (i.e.
       their names).

SEE ALSO
       Function::Parameters

AUTHOR
       Lukas Mai, "<l.mai at web.de>"

COPYRIGHT & LICENSE
       Copyright 2013, 2016 Lukas Mai.

       This program is free software; you can redistribute it and/or modify it
       under the terms of either: the GNU General Public License as published
       by the Free Software Foundation;	or the Artistic	License.

       See http://dev.perl.org/licenses/ for more information.

perl v5.32.0			  2017-11-11	 Function::Parameters::Info(3)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | AUTHOR | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Function::Parameters::Info&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help