裸块的特色:裸块内用my声明的变量只在裸块内有效spa
Eg:ci
my $a = 10;变量
sub fun{tab
printf "%s\n",$a;co
}ascii
fun(); ##10printf
{ab
my $a =20;
sub naked_fun{
printf "%s\n",$a;
}
naked_fun(); #20
fun(); #10
}
naked_fun(); #20
fun(); #10
可是对没有用my声明的变量,没有这个效果
Eg:
my $a = 10;
sub fun{
printf "%s\n",$a;
}
fun(); ##10
{
$a =20; #和正常的改值语句相同
sub naked_fun{
printf "%s\n",$a;
}
naked_fun(); #20
fun(); #20
}
naked_fun(); #20
fun();#20