From: Vincent Pit Date: Fri, 16 Apr 2010 13:26:34 +0000 (+0200) Subject: Assorted documentation tweaks and clarifications X-Git-Tag: v0.11~11 X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=1e8a530156ab09a816d8afc37692d1b46032eb32;p=perl%2Fmodules%2FScope-Upper.git Assorted documentation tweaks and clarifications --- diff --git a/lib/Scope/Upper.pm b/lib/Scope/Upper.pm index 84de02e..6e02d2c 100644 --- a/lib/Scope/Upper.pm +++ b/lib/Scope/Upper.pm @@ -117,11 +117,11 @@ BEGIN { =head2 C -Add a destructor that calls C<$callback> (in void context) when the upper scope represented by C<$context> ends. +Adds a destructor that calls C<$callback> (in void context) when the upper scope represented by C<$context> ends. =head2 C -A C delayed to the time of first return into the upper scope denoted by C<$context>. +Introduces a C delayed to the time of first return into the upper scope denoted by C<$context>. C<$what> can be : =over 4 @@ -161,6 +161,7 @@ For example, } will localize C<$Tool::tag> and not C<$Scope::tag>. +If you want the other behaviour, you just have to specify C<$what> as a glob or a qualified name. Note that if C<$what> is a string denoting a variable that wasn't declared beforehand, the relevant slot will be vivified as needed and won't be deleted from the glob when the localization ends. This situation never arises with C because it only compiles when the localized variable is already declared. @@ -170,15 +171,15 @@ Although I believe it shouldn't be a problem as glob slots definedness is pretty =head2 C -Similar to L but for array and hash elements. -If C<$what> is a glob, the slot to fill is determined from which type of reference C<$value> is ; otherwise it's inferred from the sigil. +Introduces a C or C delayed to the time of first return into the upper scope denoted by C<$context>. +Just like for L, the type of localization is determined from which kind of reference C<$value> is when C<$what> is a glob, and from the sigil when it's a string. C<$key> is either an array index or a hash key, depending of which kind of variable you localize. -Just like for L, when C<$what> is a string pointing to an undeclared variable, it will be vivified but the variable itself will be empty when the localization ends (although it will still exist in its parent glob). +If C<$what> is a string pointing to an undeclared variable, the variable will be vivified as soon as the localization occurs and emptied when it ends, although it will still exist in its glob. =head2 C -Similiar to L, but for deleting variables or array/hash elements. +Introduces the deletion of a variable or an array/hash element delayed to the time of first return into the upper scope denoted by C<$context>. C<$what> can be: =over 4 @@ -201,7 +202,7 @@ C<$key> is ignored. =head2 C -Returns C<@values> I the context pointed by C<$context>, i.e. from the subroutine, eval or format just above C<$context>, and immediately restart the program flow at this point - thus effectively returning to (or from, depending on how you see it) an upper context. +Returns C<@values> I the context pointed by C<$context>, i.e. from the subroutine, eval or format at or just above C<$context>, and immediately restart the program flow at this point - thus effectively returning to an upper scope. The upper context isn't coerced onto C<@values>, which is hence always evaluated in list context. This means that @@ -217,7 +218,7 @@ You can use L to handle these cases. =head2 C -Like C, but for the subroutine/eval/format just above C<$context>. +Like C, but for the subroutine/eval/format at or just above C<$context>. The previous example can then be "corrected" :