On 7/21/05, Larry Wall <[EMAIL PROTECTED]> wrote: > Have at it... The only thing I immediately don't like is the use of the normal identifier character "_" to indicate the "specialness" of a particular variable (or attribute or whatever we're calling them these days). IMO, a "_" should just be a "_" no matter where it occurs. Making a leading "_" mean something special (triggering a slew of new semantics) in a particular context seems a bit hacky to me.
Damian may not like the colon, but I couldn't help thinking that the "_" could be replaced with ":" and things would be cleaner. Example: has $x; # private rw, no accessors, not virtual, name lexically scoped has $:x; # private rw, rw _x accessor, not virtual, name class scoped has $.x; # has read-only method # $.x always virtual # implies existence of "real" $:x internal variable # $.x is itself read-only even in this class # $:x may be set in methods or submethods # both names are class scoped ...and so on. Other than that, I like where it's going. I would like to see some example scenarios to convince myself that it really does address the concerns indicated at the start of the explanation, however. Maybe Luke and Sam can whip some up? :) -John