Declares one or more global variables
vars
to have temporary
values within the innermost enclosing block, subroutine,
eval
, or file.
The new value is initially
undef
for scalars and
()
for arrays
and hashes. If more than one variable is listed, the list must be placed in parentheses,
because the operator binds more tightly than a comma.
All the listed variables must be legal lvalues, that is, something
you could assign to. This operator works by
saving the current values of those variables on a hidden stack
and restoring them upon exiting the block, subroutine,
or
eval
, or file.
Subroutines called within the scope of a local variable will see the
localized inner value of the variable. The technical term
for this process is "dynamic scoping." Use
my
for true private variables.