Hmm, if we take + away from named, it can become the "required" marker,

    sub foo ($a,$b,?$c)

is really short for

    sub foo (+$a,+$b,?$c)

and required named parameters then become

    sub bar (+:$key)

And, of course, that means that

    sub baz (+?$key)

is a required optional parameter.  :-)

Actually, that's an argument that : is in a different class than the regex
quantifiers, and required named should be

    sub bar (+$:key)

as I speculated earlier.  Maybe we just force that to bind to $key instead
of $:key.  That screws up the

    submethod BUILD ($.attribute)

syntax though, unless we say that any twigil forces named argument passing,
or otherwise just force it to work.  Though with BUILD we've basically
said already that all arguments must be passed +$: (required name) form.

Maybe it can be made to work.


Reply via email to