#!./perl
chdir 't' if -d 't';
require "test.pl";
$aa = 1;
$x = "aa";
$x = "a";
$x = "aa";
$x = "aa";
$x = "a";
$x = "aa";
$x = "aa";
$x = "a";
$x = "aa";
}
$x = \$aa;
my $y = \$aa;
eval { local $$x; }; test_err_localref;
eval { local ${$x}; }; test_err_localref;
eval { local $$y; }; test_err_localref;
eval { local ${$y}; }; test_err_localref;
eval { local ${\$aa}; }; test_err_localref;
eval { local ${\'aa'}; }; test_err_localref;
$x = \@aa;
$y = \@aa;
$x = \%aa;
$y = \%aa;
{
# [perl #27638] when restoring a localized variable, the thing being
# freed shouldn't be visible
my $ok;
$x = 0;
{
1;
}
}