On Mon, Nov 18, 2002 at 08:05:47AM +1100, Damian Conway wrote:
: I still think my original:
: 
:       sub bar(; $foo = $topic) is given($topic) {...}
: 
: is the appropriate compromise.

Won't fly.  Referring to something lexical before it's declared is
a no-no.  I think we need some other way of indicating the outer topic
if we're gonna use it as a default, and I think we do want that.

Perhaps it's a good time for a real keyword for use in defaults:

    sub bar(; $foo = topic) {...}

That would let us work it nicely for arrays too:

    sub bar(*@args = [topic]) {...}

Without the [], people might get confused about what to do with a $_
containing an array reference.  But maybe that means it should really
be a magical variable so we can distinguish

    sub bar(*@args = $<mumble>) {...}   # default to [$_]
    sub bar(*@args = @$<mumble>) {...}  # default to @$_

What <mumble> might be is an interesting, er, topic.

Larry

Reply via email to