Author: larry
Date: Fri Jun 16 15:33:47 2006
New Revision: 9681

Modified:
   doc/trunk/design/syn/S03.pod

Log:
Fixing bad writing, mostly.


Modified: doc/trunk/design/syn/S03.pod
==============================================================================
--- doc/trunk/design/syn/S03.pod        (original)
+++ doc/trunk/design/syn/S03.pod        Fri Jun 16 15:33:47 2006
@@ -163,7 +163,7 @@
 exclusively a syntactic distinction, and no semantic or type information
 is used, since it influences subsequent parsing.  In particular, even
 if a function is known to return a scalar value from its declaration,
-you must use C<+> or or C<~> if you wish to force scalar parsing from
+you must use C<+> or C<~> if you wish to force scalar parsing from
 within a subscript:
 
     @a[foo()] = bar();         # foo() and bar() called in list context
@@ -180,11 +180,14 @@
 side had been evaluated in list context (which is indeed the case)
 but coerced into scalar context.
 
-If the left side returns a list, however, then regardless of whether the
-list contains a single or multiple values, the right side is bound
-as in a list assignment, and any extra values are discarded.  To force
-list assignment even if the function returns a non-list, either put
-parens around the entire lvalue, or use a comma within the subscript.
+If the left side returns a list, however, then regardless of whether
+the list contains a single or multiple values, the right side values
+are assigned one by one as in any other list assignment, discarding any
+extra values if the right side is too long, or assigning undef if the
+right side is too short.  To force list assignment when a subscript
+would return a non-list, either put parens around the entire lvalue,
+or use a comma within the subscript.  (A semicolon in the subscript
+also works to indicate multidimensional slices.)
 
 Assuming
 

Reply via email to