> Ick.  I don't want to lose the dots that visually distinguish instance
   > variables from ordinary lexicals, and simultaneously render the extra
   > bracketing and indentation unnecessary.  I'd write the above as:
   > 
   >     class Demo;
   > 
   >     my $.foo is public;
   >     my $.bar;
   > 
   >     method INIT ($fooval, $barval) {
   >    $.foo = $fooval;
   >    $.bar = $barval;
   >     }
   > 
   > If you want to limit the scope, you can always bracket around the whole
   > thing, just as with the package declaration.  And I'd like "class" and
   > "module" to just be variants of the "package" keyword.  That makes them
   > easier to teach.

Except that you now have to explain why -- unlike an ordinary
my $variable -- the lexical scope of a my $.variable is to the
end of its class, not the end of its block or file.

:-(

Or does the lexical scope of a class extend only to the start of
the next class (unlike a package)? And if so, then which way does
a module work? And does a module or package close the lexical
scope of a class? And vice-versa?

:-(

Damian

Reply via email to