On Sun, Nov 02, 2003 at 07:50:05PM -0700, Luke Palmer wrote:
: So, we can have :: in names, but that doesn't represent any inherent
: relationship between the module before the :: and the one after. I
: think this is an important thing to keep.
:
: However, will it be possible to, for example, do:
:
: module Foo;
:
: module Bar { ... }
That just makes another global module named Bar. To get an inner
module, you'd have to use what we already use to get "packaged"
names of variables:
module Foo;
our module Bar { ... }
: And refer to the inner module as, say, Foo.Bar.
Its full name would be Foo::Bar. The other would be a Bar method
call on class Foo, presumably.
: A more interesting
: concept, can one use variables as modules, like:
:
: ::($foo)::somefunc();
:
: Or some awful thing like that?
Yes, there's going to be a ::() interpolation syntax for names.
: And of course this would imply the existance of anonymous modules. Yay.
Yes, and you left out lexical modules:
module Foo;
my module Bar { ... }
In theory I suppose you could have objects with module attributes:
class Foo {
has module .Bar { ... }
}
Just don't ask me what it means...
Larry