> And unfortunately dies a horrible death for languages > that don't categorize the same way as perl. :( As > well as being really inconvenient for those variables > that can express multiple classes of behaviours > simultaneously. > > This one, alas, I'm going to shoot down. > - Dan
OK, I'm going to chime in and say what makes the most sense to me, coming from a Ruby background. Each namespace should have a lowest-common-denominator set of values in it. These are not specified to be functions, namespaces, or whatever. They're just pointers to values. When you do cross-language foo::bar this is what you get. Your language can feel free to de-reference the value and convert it to another type or stuff it into a fancy variable PMC, if it wants. Now, what we need is for each namespace to also have a second set of values. These could accomodate your $foo @foo &foo, etc with sigils, or whatever method your language chooses to munge names. Though it might be good to standardize that method ("namespace/foo", "scalar/bar"), it's not necessary. Then you have two opcodes: get_namespaced ["foo","bar"] get_namespaced_exact ["::foo","$bar"] which use the LCD and separated namespaces, respectively. You might need to mix-and-match: foo = get_namespaced ["foo"] bar = get_namespaced_exact foo, ["$bar"] _______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com