Author: larry Date: Fri Mar 16 12:27:14 2007 New Revision: 14353 Modified: doc/trunk/design/syn/S02.pod
Log: Fixes suggested by spinclad++. Modified: doc/trunk/design/syn/S02.pod ============================================================================== --- doc/trunk/design/syn/S02.pod (original) +++ doc/trunk/design/syn/S02.pod Fri Mar 16 12:27:14 2007 @@ -483,13 +483,13 @@ =item * 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