I asked this same question on perl6-users, but no one really seemed to have a definitive answer, so please forgive me for reasking.
I was wondering how named arguments would work when parameters of different types had the same name, ie sub foo($bar, @bar, &bar) {...}. I wrote a little script to test it out and ran it through pugs. Here's the results: Hi, I'm just starting with Perl 6. I was reading through "Perl 6 and Parrot Essentials" (finally arrived yesterday from Amazon; very happy) and I was wondering what would happen if you had a parameter list that included variables of a different type but the same name (ie, $foo, @foo). I wrote a little test script and ran it through pugs. Here's what I got: Script: use v6; sub mysub($foo, @foo, %foo) { say "Starting mysub"; say "Printing scalar"; say $foo; say "Printing array"; say @foo; say "Printing hash"; say %foo; say "Leaving mysub\n"; } my $foo = 'foo'; my @foo = qw|foo bar|; my %foo = ( foo => 'bar', foo2 => 'bar2' ); mysub($foo, @foo, %foo); mysub(:foo($foo), :foo(@foo), :foo(%foo)); Output: Starting mysub Printing scalar foo Printing array foobar Printing hash foo barfoo2 bar2 Leaving mysub Starting mysub Printing scalar foo Printing array Printing hash Leaving mysub Just wondering if the language is meant to work that way, or if it's a pugs "feature." Thanks, Michael