Perl中的my和local两个关键字是用来防止对全局同名变量的影响, 相当于加了一层"保护膜".
my 和local 的细微差别是: my对于作用域内部全局函数没有影响.而local对于作用域内部全局函数有影响.
测试如下,
my 和local 的细微差别是: my对于作用域内部全局函数没有影响.而local对于作用域内部全局函数有影响.
测试如下,
#!/usr/bin/perl
$x = 100;
sub global{
print "gloabl: $x\n";
}
sub function_my{
my $x = 200;
print "function_my: $x\n";
global;
}
sub function_local {
local $x = 300;
print "function_local: $x\n";
global;
}
function_my;
function_local;
print "$x\n";
结果,
function_my: 200
gloabl: 100
function_local: 300
gloabl: 300
100