Perl 子程序(函数):静态变量
在 Perl 编程语言中,子程序(函数)中的静态变量可以通过 state
关键字来实现。state
变量与 my
变量类似,但它们在函数执行完毕后不会被销毁。相反,state
变量会保留其值,直到程序执行结束,这使它们在函数的多次调用之间保持状态。
以下是一个使用 state
变量的简单示例:
use feature 'state';
sub counter {
state $count = 0; # 静态变量,只会初始化一次
$count++;
return $count;
}
print counter(); # 输出 1
print counter(); # 输出 2
print counter(); # 输出 3
在这个例子中,$count
是一个静态变量,每次调用 counter
子程序时,$count
的值都增加 1。由于它是 state
变量,增量值在函数调用之间得以保留。
要使用 state
变量,你需要确保在脚本开头启用 state
功能,这可以通过 use feature 'state';
来实现。这个功能在 Perl 5.10 及更高版本中可以使用。