I don't think this isn't a bug. This is just how signature binding works: my ($a,$b,$c) := [10,20,v => 30] Too few positionals passed; expected 3 arguments but got 2 in block <unit> at -e line 1
It makes sense to me because otherwise what would this mean? sub s(@($a,$b,:$c)) { .... } Pair elements have to become bound to named parameters in the sub-signature. LL On Thu, Feb 16, 2017 at 2:43 AM David Warring <perl6-bugs-follo...@perl.org> wrote: # New Ticket Created by David Warring # Please include the string: [perl #130787] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=130787 > Consider: sub s(@ ($a, $b, $c)) { note [$a,$b,$c].perl; } s([10,20,30]); s([10,20,v=>30]); # dies david@X346:~$ perl6 -v This is Rakudo version 2017.01-207-gb51a550 built on MoarVM version 2017.01-45-g2b0739d implementing Perl 6.c. david@X346:~$ perl6 /tmp/tst.pl [10, 20, 30] Too few positionals passed; expected 3 arguments but got 2 in sub-signature in sub s at /tmp/tst.pl line 1 in block <unit> at /tmp/tst.pl line 5