Perl 中通过 local() 实现临时值


在 Perl 中,local 主要用于当变量的当前值必须对已调用的子例程可见时。Perl local 只向全局(含义是包)变量提供临时值。这被称为动态作用域。词法作用域由 my 完成,其功能更类似于 C 的 auto 声明

如果为 local 提供了多个变量或表达式,则必须将其放在括号中。此运算符通过将那些变量的当前值保存在其隐藏堆栈中的参数列表中,并在退出块、子例程或 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!

更新于: 2019-11-29

212 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告