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

Reply via email to