Name
local
Synopsis
local vars
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 can 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, 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.