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