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


Reply via email to