Date: Fri Mar 16 12:27:14 2007
New Revision: 14353
Fixes suggested by spinclad++.
--- doc/trunk/design/syn/S02.pod (original)
+++ doc/trunk/design/syn/S02.pod Fri Mar 16 12:27:14 2007
@@ -483,13 +483,13 @@
Built-in object types start with an uppercase letter. This includes
-immutable types (e.g. C<Int>, C<Num>, C<Complex>, C<Rational>, C<Str>,
+immutable types (e.g. C<Int>, C<Num>, C<Complex>, C<Rat>, C<Str>,
C<Bit>, C<Regex>, C<Set>, C<Junction>, C<Code>, C<Block>, C<List>,
C<Seq>), as well as mutable (container) types, such as C<Scalar>,
C<Array>, C<Hash>, C<Buf>, C<Routine>, C<Module>, etc.
Non-object (native) types are lowercase: C<int>, C<num>, C<complex>,
-C<rational>, C<buf>, C<bit>. Native types are primarily intended for
+C<rat>, C<buf>, C<bit>. Native types are primarily intended for
declaring compact array storage. However, Perl will try to make those
look like their corresponding uppercase types if you treat them that way.
(In other words, it does autoboxing. Note, however, that sometimes
@@ -549,7 +549,7 @@
C<Rat> supports arbitrary precision rational arithmetic. However,
dividing two C<Int> objects using C<< infix:</> >> produces a
fraction of C<Num> type, not a ratio. You can produce a ratio by
-using C<infix:<div> >> on two integers instead.
+using C<< infix:<div> >> on two integers instead.
Lower-case types like C<int> and C<num> imply the native
machine representation for integers and floating-point numbers,
@@ -1518,11 +1518,11 @@
contextual.) If the variable is not visible in the caller, it returns
failure. Variables whose names are visible at the point of the call but that
come from outside that lexical scope are controlled by the scope
-in which they were originally declared, and so on transitively.
+in which they were originally declared.
Hence the visibility of C<< CALLER::<$+foo> >> is determined where
C<$+foo> is actually declared, not by the caller's scope. Likewise
C<< CALLER::CALLER::<$x> >> depends only on the declaration of C<$x>
-in your caller's caller.
+visible in your caller's caller.
Any lexical declared with the C<is context> trait is by default
considered readonly outside the current lexical scope. You may