Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: List arguments of a method

by moritz (Cardinal)
on May 15, 2014 at 09:10 UTC ( #1086122=note: print w/ replies, xml ) Need Help??


in reply to List arguments of a method

I want to list the arguments of allVars that is - $no1, $no2, $name1 and $name2.

In the usual Perl nomenclature, the arguments are simply the values that are passed in, and those can be found in @_.

Perl 5 doesn't (yet) support formal parameter lists / signatures of subroutines, so you can't introspect them.

Perl 6 exposes signatures as objects, and allows you introspect that parameter list:

$ perl6-m -e 'sub f($x, $a, $b) { }; say &f.signature.params.perl' (Any $x, Any $a, Any $b).list $ perl6-m -e 'sub f($x, $a, $b) { }; say &f.signature.params[1].name' $a $ perl6-m -e 'sub f($x, $a, $b) { }; say &f.signature.params[1].type.^ +name' Any


Comment on Re: List arguments of a method
Download Code
Re^2: List arguments of a method
by tobyink (Abbot) on May 15, 2014 at 09:27 UTC

    "Perl 6 exposes signatures as objects, and allows you introspect that parameter list"

    FYI, the Kavorka signature syntax and introspection API shown in my answer is very much inspired by Perl 6.

    Your example:

    $ perl6-m -e 'sub f($x, $a, $b) { }; say &f.signature.params[1].name' $a

    ... translates to:

    perl -MKavorka -E'fun f($x, $a, $b){ }; say Kavorka->info(\&f)->signat +ure->params->[1]->name'

    My policy was generally, "if in doubt, do things like Perl 6".

    I do really need to experiment with blessing coderefs, allowing things like: (\&f)->signature to "just work".

    use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1086122]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (7)
As of 2014-09-22 12:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (191 votes), past polls