On Tue, Mar 15, 2005 at 02:25:01PM -0600, Rod Adams wrote: : In Perl 6, all builtin functions belong to a named package. Not all : functions are guaranteed to be imported into the global package : C<::*>. In addition, the list of functions imported into C<::*> will be : subject to change with each release of Perl. Authors wishing to : "Future Proof" their code should either specifically import the : functions they will be using, or always refer to the functions by their : full name.
Hmm, what I said was supposed to be policy for just the development release of 6.0.0. However, it's not that far off from the general case if you add something along the lines of: After 6.0.0 comes out, global aliases will not be removed lightly, and will never be removed at all without having gone through a deprecation cycle of at least a year. In any event, you can specify that you want the interface for a particular version of Perl, and that can be emulated by later versions of Perl to the extent that security updates allow. Interestingly, that last sentence means that different modules can have different views of * space. But really, that just falls out of ordinary module versioning, if you can warp your brain around to thinking of * as an ordinary versioned module. The long name of * just happens to include the Perl version number, and could presumably even include different "authors" if we ever fork Perl. Larry