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,),),)

Reply via email to