See the current Perl documentation for local.
Here is our local, out-dated (pre-5.6) version:
local - create a temporary value for a global variable (dynamic scoping)
A local modifies the listed variables to be local to the enclosing block, file, or eval. 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.