At 01:50 PM 8/9/00 -0700, Larry Wall wrote:
>Dan Sugalski writes:
>: At 11:11 AM 8/9/00 -0700, Larry Wall wrote:
>: >Dan Sugalski writes:
>: >: Does that mean, then, that when module A does a "$C::bar = 1" it 
>affects a
>: >: different package namespace than module B doing a "$C::bar = 2"?
>: >
>: >Presumably.
>:
>: Hmmmm. That brings up some issues of ambiguity, then. If you use C in
>: package A, and also in package B, which do you see when you're in main and
>: access $C::bar?
>
>I dunno.  I don't imagine the situation will arise that often.

It'll happen at least once.

I suppose we could go insane and make packages loaded in through modules 
completely invisible to all but the use-ing package, so in this case main 
wouldn't even know there was a C loaded, and if it tries to mess with 
things in the C package it gets its own empty stash to deal with. (Which 
all other packages that didn't use one version of the module or another get)

I suppose that's a fancy way of saying namespaces created by used modules 
are private to the package using them. (Though that still leaves the issue 
of what happens when package B uses something from package C which wasn't 
created on the use, but then I'd probably just say "you get your version of 
C. Nyah!")

                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to