So what's wrong with: sub foo($param is topic //= $= // 5) # Shorter form with $= sub foo($param is topic //= $CALLER::_ // 5)
It doesn't really seem like we can make it much shorter. Yes, we could convert //= into a single character, but why? People will understand //=. The idea of $= as CALLER::_ is good, though. Also, since we're jamming things into the signature, how do we declare call-by-value/call-by-reference info? =Austin --- Allison Randal <[EMAIL PROTECTED]> wrote: > To summarize, we're discussing 3 features: > > a) the ability to set the topic with a block (sub, method, etc) > b) the ability to set a default value for a parameter > c) the ability to break lexical scope > 1) for $_ only > 2) for any variable > > Each of these features already have syntax that allows them to be > used > independently: > > # a) set topic > sub foo ($param is topic) { ... } > # or it's set implicitly to the first parameter > > # b) default > sub foo ($param = 5) { ... } > > # c) break lexical scope > $CALLER::varname > > The propsals all basically boil down to bits of syntactic sugar that > combine these three features in various ways. > > The fundamental question for each of the proposals is "What's the > overall gain for the language in providing syntatic sugar for this > particular combination of features?" > > Allison