On Thu, Mar 24, 2005 at 03:09:37PM -0700, Luke Palmer wrote: : Larry Wall writes: : > Step A: For each positional parameter, if the next supplied argument is: : > : > 1) a non-pair : > 2) a pair, and this parameter is explicitly declared Pair, or : > 3) a hash, and this parameter is declared Hash, either explicitly, : > or implicitly with a % sigil, : : Wait, so: : : sub foo (?$x, *%opts) {...} : : foo @a; # $x = [EMAIL PROTECTED], %opts = (); : foo %a; # $x = undef, %opts = %a; : : That's asymmetrical, and I think in a bad way.
Yeah, I agree. How 'bout we go with something like you have to * the actual hash (if it's the first thing) to make it look like a list of pairs to the parser, and we can just get rid of 3 there. Larry