Perl has a very handy construction
{
local $var = 2;
...
}
This construction is *approximately* equivalent to
{
my $oldvar = $var;
$var = 2;
...
$var = $oldvar;
}
####
D:\>perl -lwe "$var='qq';{local $var=2;print $var;}print $var"
2
qq
####
D:\>perl -lwe "my $var='qq';{local $var=2;print $var;}print $var"
Can't localize lexical variable $var at -e line 1.