On Sat, 10 Dec 2011 18:37:03 -0800, jimmy.z...@gmail.com wrote: > JimmyZ> nom: if 42 -> *@_ { say @_.perl } > p6eval> nom 1f9310: OUTPUT«Array.new()» > > JimmyZ> niecza: if 42, 44, 22 -> *@a { say @a.perl } > p6eval> niecza v12-10-ga8ad0e9: OUTPUT«(42, 44, 22)» > > JimmyZ>nom: if 42, 44, 22 -> *@a { say @a.perl } > p6eval>nom 1f9310: OUTPUT«Array.new()» > > jnthn> JimmyZ: oh, oddness... > jnthn> JimmyZ: Anyway, I can probably fix it. Feel free to submit a ticket. > > JimmyZ> nom: while 42, 44, 22 -> *@a { say @a.perl; last } > p6eval> nom 70d715: OUTPUT«Array.new()» > JimmyZ> niecza: while 42, 44, 22 -> *@a { say @a.perl; last } > p6eval> niecza v12-11-g20a790d: OUTPUT«(42, 44, 22)» >
Thank you for the report. This is now fixed. Fix: https://github.com/perl6/nqp/commit/8e7201eb64 https://github.com/rakudo/rakudo/commit/dfb6d951d7 https://github.com/rakudo/rakudo/commit/ef1d22f4c1 Test: https://github.com/perl6/roast/commit/aa90737df1 On Mon, 11 Jan 2016 18:43:32 -0800, awwaiid wrote: > Putting parens around the signature makes it work: > > $ perl6 -e 'while 42, 44, 22 -> (*@a) { say @a.perl; last }' > [42, 44, 22] > > $ perl6 -e 'if 42, 44, 22 -> (*@a) { say @a.perl }' > [42, 44, 22] > > I don't know if the parenthesis SHOULD be required or not. No, with parentheses you're taking a single positional arg and then unpacking its Capture.