home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


local

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 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.