Author: larry Date: Fri Mar 17 15:41:25 2006 New Revision: 8336 Modified: doc/trunk/design/syn/S11.pod
Log: Fixes from Damian Clarification of default Perl package name Clarification of when we need not default to Perl 5 Modified: doc/trunk/design/syn/S11.pod ============================================================================== --- doc/trunk/design/syn/S11.pod (original) +++ doc/trunk/design/syn/S11.pod Fri Mar 17 15:41:25 2006 @@ -12,9 +12,9 @@ Maintainer: Larry Wall <[EMAIL PROTECTED]> Date: 27 Oct 2004 - Last Modified: 23 Feb 2006 + Last Modified: 17 Mar 2006 Number: 11 - Version: 9 + Version: 10 =head1 Overview @@ -89,6 +89,8 @@ the C<sub bar> above will bind as C<&Foo::EXPORT::DEFAULT::bar>, C<&Foo::EXPORT::ALL::bar>, and C<&Foo::EXPORT::others::bar>. +Tagset names consisting entirely of capitals are reserved for Perl. + Inner modules automatically add their export list to modules in all their outer scopes: @@ -239,19 +241,31 @@ use Perl-6; -you're asking for any version of Perl 6. Say: +you're asking for any version of Perl 6. You need to say: use Perl-6.0; use Perl-6.0.0; use Perl-6.2.7.1; if you want to lock in a particular set of semantics at some greater -degree of specificity. And some large company ever forks Perl, you can say +degree of specificity. And if some large company ever forks Perl, you can say use Perl-6-cpan:TPF to guarantee that you get the unembraced Perl. C<:-)> +Perl is the default module name, so + + use v6-cpan:TPF; + +means the same thing. As a variant of that, the current Perl 5 +incantation to switch to Perl 6 parsing is + + use v6-pugs; + +(though in Perl 5 this actually ends up calling the v6.pm module with a +'-pugs' argument for insane-but-useful reasons.) + For wildcards any valid smartmatch selector works: use Dog-(1.2.1 | 1.3.4)-(/:i jrandom/); @@ -273,7 +287,7 @@ my Dog-1.3.4-cpan:JRANDOM $spot .= new("woof"); -The use statement actually allows a language on the front of a module name, +The C<use> statement actually allows a language on the front of a module name, so that you can use modules from other languages. The language is separated by a colon. For instance: @@ -314,3 +328,7 @@ a bare literal in a void context I<ought> to have produced a warning. (Invoking perl with C<-e6> has the same effect.) +It's not necessary to force Perl 6 if the interpreter or command +specified already implies it, such as use of a "C<#!/usr/bin/perl6>" +shebang line. Nor is it necessary to force Perl 6 in any file that +beings with the "class" or "module" keywords.