#!/usr/bin/perl
sub g_print{
print "$x
";
}
#my local都叫做私有变量。
sub test_my{
my $x=11;#my定义的变量只能在该块体(两个{}之间)中使用,不能向内传递
print"call-my $x
";#11,就近原则
g_print;#my参数不能向内传递,所以还是输出9
}
sub test_local{
local $x=20;#local也是私有变量,但是与my的区别是,local可以向内传递
print"call-local $x
";#20
g_print;#209
}
$x=9;
test_my;
test_local;
print $x;
#my变量:只在本层模块可以看到这个变量
#local变量:本层和本层下层的函数都可以看到的变量