On Fri, Sep 14, 2018 at 6:03 PM ToddAndMargo <toddandma...@zoho.com> wrote: > > >> On Fri, Sep 14, 2018 at 6:47 PM ToddAndMargo <toddandma...@zoho.com > >> <mailto:toddandma...@zoho.com>> wrote: > >> > >> Hi All, > >> > >> Can a method be given multiple inputs? > >> > >> ( $a, $b ).foo > >> > >> and how would the docs write it? > >> > >> method foo(Any:D Any:D: -->Bool) > >> > >> Is there a comma or a space between the two "any"'s? > >> > >> Many thanks, > >> -T > >> > > > > On 09/14/2018 03:52 PM, Brandon Allbery wrote: > > In that case, you're not giving it two items; you are giving it a single > > List that happens to have two items within it. A method has one > > invocant. If you are invoking method foo on that, its invocant is a List. > > > > > my $a; my $b; say ($a, $b).^name > > List > > Makes sense. () turns it into a "List" so it > can be passed as one. > > Thank you!
No () doesn't turn it into a list. The comma turns it into a list The () just act as a way to textually encapsulate the list (42).^name; # Int (42, ).^name; # List This is a very important distinction. [[[42]]].perl(); # [42] [[[42],],].perl(); # [[[42],],] (((42))).perl(); # 42 (((42,),),).perl(); # (((42,),),)