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.