Author: larry Date: Mon Apr 16 09:59:02 2007 New Revision: 14375 Modified: doc/trunk/design/syn/S11.pod
Log: Module names must respect case sensitivity even on case-insensitive systems. Modified: doc/trunk/design/syn/S11.pod ============================================================================== --- doc/trunk/design/syn/S11.pod (original) +++ doc/trunk/design/syn/S11.pod Mon Apr 16 09:59:02 2007 @@ -12,9 +12,9 @@ Maintainer: Larry Wall <[EMAIL PROTECTED]> Date: 27 Oct 2004 - Last Modified: 9 Mar 2006 + Last Modified: 16 Apr 2007 Number: 11 - Version: 17 + Version: 18 =head1 Overview @@ -202,6 +202,20 @@ where to keep them, such that multiple versions by different authors can coexist, all of them available to any installed version of Perl. +The internal API for package names is always case-sensitive, even if +the library system is hosted on a system that is not case-sensitive. +This implies either some sort of name mangling capability or storage +of intermediate products into a database of some sort. In any event, +the actual storage location must be encapsulated in the library system +such that it is hidden from all language level naming constructs. +(Provision must be made for interrogating the library system for +the actual location of a module, of course, but this falls into +the category of introspection.) Note also that distributions +need to be distributed in a way that they can be installed on +case-insensitive systems without loss of information. That's fine, +but the language-level abstraction must not leak details of this +mechanism without the user asking for the details to be leaked. + The syntax of a versioned module or class declaration has multiple parts in which the non-identifier parts are specified in adverbial pair notation without intervening spaces. Internally these are stored in