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