Perl用 my声明的词法变量
作者:
PETJO | 来源:发表于
2021-07-01 07:05 被阅读0次
5. 用 my声明的词法变量
- 词法变量可用在任何语句块内,并不仅限于子程序的语句块。
- 变量对其所属语句块来说是私有的,如果变量的定义并未出现在任何语句块里,则该变量对于整个程序源文件来说是私有的。
- 词法变量的作用域(scope)受限于定义它的最内层语句块内,或文件内。
- 一个程序文件也是一个独立的作用域,所以其中的词法变量到了其他文件是无法访问的。
- my 操作符并不会更改变量赋值时的上下文。
- my 操作符不加括号时,只能用来声明靠近的单个词法变量,也可以使用my创建新的私有数组。
- 所有新变量的值一开始都是空的;标量被设为undef,数组被设为空列表。
- 日常编程中最好每个新变量都使用my声明,让它保持在自己所在的词法作用域内。
- perl 的内置变量(比如$_)则完全不用事先声明。
# 任何语句块内都可以使用my 词法变量
foreach (1..10) {
my ($square) = $_ * $_; # 在此循环内的私有变量
print "$_ squared is $squared. \n";
}
# 不更改上下文
my($num) = @_; # 列表上下文,和($num) = @_;相同
my $num = @_; # 标量上下文,和$num = @_;相同
# 不加括号只能用来声明靠近的单个词法变量
my $fred $barney; # 没有声明 $barney
my ($fred $barney); # 两个都声明了
# my 创建新的私有数组;
my @phone_number;
# 循环内控制变量也可以声明为词法变量
foreach my $rock (qw/ bedrock slate lava /) {
print "One rock is $rock.\n"
}
本文标题:Perl用 my声明的词法变量
本文链接:https://www.haomeiwen.com/subject/xuzdultx.html
网友评论