]> git.vpit.fr Git - perl/modules/Variable-Temp.git/commitdiff
This is 0.02 v0.02
authorVincent Pit <vince@profvince.com>
Wed, 1 Apr 2015 22:55:29 +0000 (19:55 -0300)
committerVincent Pit <vince@profvince.com>
Wed, 1 Apr 2015 22:55:29 +0000 (19:55 -0300)
Changes
META.json
META.yml
README
lib/Variable/Temp.pm

diff --git a/Changes b/Changes
index 80f4cab6c8d4f46767c7f80af81b11ed00666191..c11a2e5810f32043276720d613c8a24d9a157c19 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,13 @@
 Revision history for Variable-Temp
 
+0.02    2015-04-01 22:55 UTC
+        + Add : temp() can now be applied to arrays and hashes.
+        + Add : The new set_temp() function is a non-lvalue alternative to
+                temp(). In particular, it can be used on perl 5.12.x and
+                below.
+        + Fix : 'temp $var;' now correctly sets $var to undef.
+        + Fix : The tests now pass correctly on perl 5.12.x and below.
+
 0.01    2015-03-09 13:55 UTC
         First version, released on an unsuspecting world.
 
index 9f694905d67a52ab980c5a086f79e08f01e8e972..ca6a384826d088c9dd5da48c0c007e7ef5931573 100644 (file)
--- a/META.json
+++ b/META.json
@@ -4,7 +4,7 @@
       "Vincent Pit <perl@profvince.com>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.143240",
+   "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001",
    "license" : [
       "perl_5"
    ],
@@ -26,7 +26,9 @@
             "ExtUtils::MakeMaker" : "0",
             "Scope::Upper" : "0",
             "Test::More" : "0",
-            "base" : "0"
+            "Variable::Magic" : "0.51",
+            "base" : "0",
+            "lib" : "0"
          }
       },
       "configure" : {
@@ -39,6 +41,7 @@
             "Exporter" : "0",
             "Scope::Upper" : "0",
             "Test::More" : "0",
+            "Variable::Magic" : "0.51",
             "base" : "0",
             "perl" : "5.006"
          }
@@ -57,5 +60,5 @@
          "url" : "http://git.profvince.com/?p=perl%2Fmodules%2FVariable-Temp.git"
       }
    },
-   "version" : "0.01"
+   "version" : "0.02"
 }
index adf966fe149eba0f76297760d8ebde6c6b2b12d6..086f85330477e259a523802e2ae03fa163d4daa7 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -7,11 +7,13 @@ build_requires:
   ExtUtils::MakeMaker: '0'
   Scope::Upper: '0'
   Test::More: '0'
+  Variable::Magic: '0.51'
   base: '0'
+  lib: '0'
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.143240'
+generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -25,6 +27,7 @@ requires:
   Exporter: '0'
   Scope::Upper: '0'
   Test::More: '0'
+  Variable::Magic: '0.51'
   base: '0'
   perl: '5.006'
 resources:
@@ -32,4 +35,4 @@ resources:
   homepage: http://search.cpan.org/dist/Variable-Temp/
   license: http://dev.perl.org/licenses/
   repository: http://git.profvince.com/?p=perl%2Fmodules%2FVariable-Temp.git
-version: '0.01'
+version: '0.02'
diff --git a/README b/README
index 276fff64e1bf5e32e24f521615584c455dd658ad..df6d397b38485d7c224267056910d809cdce36a3 100644 (file)
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ NAME
     Variable::Temp - Temporarily change the value of a variable.
 
 VERSION
-    Version 0.01
+    Version 0.02
 
 SYNOPSIS
         use Variable::Temp 'temp';
@@ -17,43 +17,68 @@ SYNOPSIS
 
 DESCRIPTION
     This module provides an utility routine that can be used to temporarily
-    change the value of a variable, until the end of the current scope is
-    reached where the original value of the variable is restored. It is
-    similar to "local", except that it can be applied onto lexicals as well
-    as globals, and that it replaces values by copying the new value into
-    the container variable instead of by aliasing.
+    change the value of a scalar, array or hash variable, until the end of
+    the current scope is reached where the original value of the variable is
+    restored. It is similar to "local", except that it can be applied onto
+    lexicals as well as globals, and that it replaces values by copying the
+    new value into the container variable instead of by aliasing.
 
 FUNCTIONS
   "temp"
         temp $var;
         temp $var = $value;
 
-    Temporarily replace the value of the lexical or global variable $var by
-    $value, or by "undef" if $value is omitted, until the end of the current
-    scope. Any subsequent assignments to $var in the current (or any
-    inferior) scope will not affect the original value which will be
-    restored into the variable at scope end. Several "temp" calls can be
-    made onto the same variable, and the restore are processed in reverse
-    order.
+        temp @var;
+        temp @var = \@value;
 
-    Note that destructors associated with $var will not be called when
-    "temp" sets the temporary value, but only at the natural end of life of
-    the variable (i.e. at the end of the scope). They will trigger after any
-    destructor associated with the replacement $var.
+        temp %var;
+        temp %var = \%value;
 
-EXPORT
-    The function "temp" is only exported on request by passing 'temp' to the
-    module import list.
+    Temporarily replaces the value of the lexical or global variable $var by
+    $value (respectively @var by @value, %var by %value), or by "undef" if
+    $value is omitted (respectively empties @var and %var if the second
+    argument is omitted), until the end of the current scope. Any subsequent
+    assignments to this variable in the current (or any inferior) scope will
+    not affect the original value which will be restored into the variable
+    at scope end. Several "temp" calls can be made onto the same variable,
+    and the restore are processed in reverse order.
+
+    Note that destructors associated with the variable will not be called
+    when "temp" sets the temporary value, but only at the natural end of
+    life of the variable. They will trigger after any destructor associated
+    with the replacement value.
+
+    Due to a shortcoming in the handling of the "\$" prototype, which was
+    addressed in "perl" 5.14, the pseudo-statement "temp $var = $value" will
+    cause compilation errors on "perl" 5.12.x and below. If you want your
+    code to run on these versions of "perl", you are encouraged to use
+    "set_temp" instead.
+
+  "set_temp"
+        set_temp $var;
+        set_temp $var => $value;
+
+        set_temp @var;
+        set_temp @var => \@value;
+
+        set_temp %var;
+        set_temp %var => \%value;
 
-CAVEATS
-    Currently only applies to scalar variables.
+    A non-lvalue variant of "temp" that can be used with any version of
+    "perl".
+
+EXPORT
+    The functions "temp" and "set_temp" are only exported on request by
+    specifying their names in the module import list.
 
 DEPENDENCIES
     perl 5.6.
 
+    Exporter (core since perl 5).
+
     Scope::Upper.
 
-    Exporter (core since perl 5).
+    Variable::Magic 0.51.
 
 SEE ALSO
     Scope::Upper.
index 390ff48327278330812ca2559bbde170acda0a29..747771194bce80a65199f58a24c30df202966fc2 100644 (file)
@@ -11,13 +11,13 @@ Variable::Temp - Temporarily change the value of a variable.
 
 =head1 VERSION
 
-Version 0.01
+Version 0.02
 
 =cut
 
 our $VERSION;
 BEGIN {
- $VERSION = '0.01';
+ $VERSION = '0.02';
 }
 
 =head1 SYNOPSIS