在当地主要是用来当一个变量的当前值必须在Perl调用的子程序可见。Perl本地只是将临时值赋予全局(含义包)变量。这称为动态作用域。用我完成词法作用域,它的工作方式更像C的自动声明
如果给本地多个变量或表达式,则必须将它们放在括号中。该运算符的工作方式是将这些变量的当前值保存在其参数列表中的隐藏堆栈中,并在退出块,子例程或eval时恢复它们。
让我们检查以下示例以区分全局变量和局部变量-
#!/usr/bin/perl # Global variable $string = "Hello, World!"; sub PrintHello { # Private variable for PrintHello function local $string; $string = "Hello, Perl!"; PrintMe(); print "Inside the function PrintHello $string\n"; } sub PrintMe { print "Inside the function PrintMe $string\n"; } # Function call PrintHello(); print "Outside the function $string\n";
输出结果
执行以上程序后,将产生以下结果-
Inside the function PrintMe Hello, Perl! Inside the function PrintHello Hello, Perl! Outside the function Hello, World!