local - create a temporary value for a global variable (dynamic scoping)
local
EXPR
A local modifies the listed variables to be local to
the enclosing block, subroutine, eval{}, or do. If more than one value is listed, the list must be placed in parentheses.
See Temporary Values via local() for details, including issues with tied arrays and hashes.
But you really probably want to be using my() instead, because
local() isn't what most people think of as ``local''). See Private Variables via my() for details.