In a message dated 1 Sep 2002, Uri Guttman writes: > >>>>> "DW" == David Wheeler <[EMAIL PROTECTED]> writes: > > DW> On Sunday, September 1, 2002, at 05:30 AM, Damian Conway wrote: > >> Sure. But the right solution is to permanently eliminate the > >> sesquipedalian > >> name (so you don't have to retype it for every single typed variable): > >> > >> class Date is Really::Long::Package::Name::Ugh; > > DW> Oh, that's nice. As long as one is careful about not creating > DW> conflicting class names... > > but you should always know the classes you are using in a file. and i > expect that is a lexical map/transform which shouldn't affect the symbol > table. so only in this file/scope would Date be an alias to that long > class name.
An alias? Isn't class Date is Really::Long::Package::Name::Ugh; a new class declaration, declaring 'Date' as a subclass of Really::Long::Package::Name::Ugh? Because the class body is empty, i.e. this line is equivalent to class Date is Really::Long::Package::Name::Ugh { }; it will have a similar effect to aliasing Really::Long::Package::Name::Ugh under the name 'Date', simply because the subclass hasn't redefined any behavior of the parent. But it *is* a separate class ((new Date()).class should return 'Date', not Really::Long::Package::Name::Ugh), unless Damian was saying that there would be some special casing when a class declaration contains no body. Furthermore, we haven't seen any final word about export behavior, but the default is something along the lines of 'public', correct? So if you have a module or class file containing the above declaration, the class 'Date' should be exported to users of the module, unless you write it my class Date is Really::Long::Package::Name::Ugh; right? Trey