+ 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;