CARVIEW |
- #local EXPR
-
You really probably want to be using
my
instead, becauselocal
isn't what most people think of as "local". See "Private Variables via my()" in perlsub for details.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()" in perlsub for details, including issues with tied arrays and hashes.
Like
my
,state
, andour
,local
can operate on a variable anywhere it appears in an expression (aside from interpolation in strings). Unlike the other declarations, the effect oflocal
happens at runtime, and so it will apply to additional uses of the same variable executed after the declaration, even within the same statement. Note that this does not include uses within an expression assigned to the variable when it is localized, because the assigned expression is evaluated before the localization.package main; our $x = 2; { foo($x, local $x = $x + 1, $x); # foo() receives (2, 3, 3) # $main::x is 3 within the call to foo() } foo($x); # foo() receives (2) and $main::x is 2
The
delete local EXPR
construct can also be used to localize the deletion of array/hash elements to the current block. See "Localized deletion of elements of composite types" in perlsub.
Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via the GitHub issue tracker or email regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via the Perl issue tracker, the mailing list, or IRC to report any issues with the contents or format of the documentation.