Author: autrijus Date: Sat Apr 1 10:43:58 2006 New Revision: 8525 Modified: doc/trunk/design/syn/S11.pod
Log: * S11: Allow user-defined dynamic exportation with EXPORT routines, which assume the semantic from Damian's Perl6::Export::Attrs. The magical export dispatcher is now EXPORTALL. Modified: doc/trunk/design/syn/S11.pod ============================================================================== --- doc/trunk/design/syn/S11.pod (original) +++ doc/trunk/design/syn/S11.pod Sat Apr 1 10:43:58 2006 @@ -12,9 +12,9 @@ Maintainer: Larry Wall <[EMAIL PROTECTED]> Date: 27 Oct 2004 - Last Modified: 17 Mar 2006 + Last Modified: 1 Apr 2006 Number: 11 - Version: 10 + Version: 11 =head1 Overview @@ -105,7 +105,18 @@ } The C<Foo> module will export C<&foo>, C<&bar> and C<&baz> by default; -calling C<Foo::Bar.import> will import C<&bar> and C<&baz> at runtime. +calling C<Foo::Bar.EXPORTALL> will export C<&bar> and C<&baz> at runtime +to the caller's package. + +=head1 Dynamic exportation + +The default C<EXPORTALL> handles symbol exports by removing recognized +export items and tagsets from the argument list, then calls the C<EXPORT> +subroutine in that module (if there is one), passing in the remaining +arguments. + +If the exporting module is actually a class, C<EXPORTALL> will invoke its +C<EXPORT> method with the class itself as the invocant. =head1 Compile-time Importation @@ -155,7 +166,7 @@ at runtime cannot import into the lexical scope: require Sense; - Sense.import; # goes to the OUR scope by default, not MY + Sense.EXPORTALL; # goes to the OUR scope by default, not MY =head1 Importing from a pseudo-package