Perl编程:作用域、模块与代码导入
1. 局部作用域与变量
在Perl编程中,局部变量是仅在脚本的特定部分可用的变量。当该部分脚本执行完毕后,变量就会消失,并且对脚本其他部分的可用性也有限。
1.1 局部变量与局部作用域
在子例程中使用 my 定义的变量就是局部变量,子例程会定义一个局部作用域,该局部变量在子例程内部的所有代码中都可用。不过,子例程并非创建局部作用域的唯一方式,任何被花括号包围的代码块都会定义一个局部作用域,在该代码块内定义的局部变量会在代码块结束时消失。
以下是一些定义局部作用域的代码示例:
if ($foo) { # 条件语句
my $x = 0;
print "X in conditional: $x\n";
$x++;
}
foreach (1..5) { # 循环
my $x += $_;
print "X in loop: $x\n";
}
{ # 裸代码块
my $x = 0;
print "X in bare block: $x\n";
$x++;
}
需要注意的是,局部变量与全局变量同名时,会隐藏同名全局变量的值。在当前局部作用域内使用的是局部变量的值,作用域结束后,原始的全局变量及其值会被恢复。一般来说,除非有充分的理由,否则应避免将局部变量和全局变量命名为相同的名称。另外,即使在局部作用域内,也可以使用完整的包名来引用全局变量。
超级会员免费看
订阅专栏 解锁全文
57

被折叠的 条评论
为什么被折叠?



