http://qs321.pair.com?node_id=1086122


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