Question 1: What is meant by: has $attribute # lexical alias for $!attribute.
Here is more concrete example. There is none in S12. class C { has $a; method foo () { my $y = $a; # is the correct? } In that scope, is $a really a shortcut for $self!a ? If so, is that really a good idea? If not, please clarify. Question 2: Here is summary of what is said in S12 concerning these declarators, used inside a class: my $.var class attribute, plus generates accessor, not inheritable. (The variable itself or the accessor is not inheritable?) my $!var class attribute, no accessor, not inheritable. How is this different from a normal lexical variable? Role composition can show differences? our $.var class attribute, accessor, inheritable. our $!var class attribute, no accessor, inheritable. my $var lexically scoped variable our $attribute class attributes. What do you mean by "inheritable"? Does the form our $!var make sense or is that an oxymoron? How is my $var with no metaclass involvement different in functionality from my $.var ? Likewise for 'our' with and without a twigil. 6 ways to define class attributes -- TIMTOYTDI for sure. I can take the issue to think through the details and write it up. But, what central point is it trying to embody? Here is a first cut: * my and our *always* work in the usual way for the declared symbol. Don't worry about funny twigil names or the fact that it's inside a class. * the . twigil makes an accessor in the class itself for that value. *? so, the ! twigil doesn't seem to accomplish anything in this situation