X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FScope%2FUpper.pm;h=84de02eea6ebf8befe98320881ff7d27f3d421fa;hb=refs%2Ftags%2Frt55593;hp=91219ff91e5b7fcd63cf1027d022412d35bce5d1;hpb=3ccbf65d886255fab86d078e7807d78c576290f3;p=perl%2Fmodules%2FScope-Upper.git diff --git a/lib/Scope/Upper.pm b/lib/Scope/Upper.pm index 91219ff..84de02e 100644 --- a/lib/Scope/Upper.pm +++ b/lib/Scope/Upper.pm @@ -162,6 +162,10 @@ For example, will localize C<$Tool::tag> and not C<$Scope::tag>. +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. +Although I believe it shouldn't be a problem as glob slots definedness is pretty much an implementation detail, this behaviour may change in the future if proved harmful. + =back =head2 C @@ -170,6 +174,8 @@ 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. 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). + =head2 C Similiar to L, but for deleting variables or array/hash elements.