找回密码
 注册
查看: 2196|回复: 0

perl语言子程序中的私有变量

[复制链接]
发表于 2011-11-13 22:20:58 | 显示全部楼层 |阅读模式
Perl 在每一次调用时提供@_这个私有变量,那它可以给我们提供私有变量吗?答案是,能。
默认情况下,Perl 中所有变量都是全局的;也就是说,这些变量可以在程序的任意部分使用。你也可以任意时候使用my
创建私有变量:
sub max {
my($m,$n); #新的,私有变量
($m,$n) = @_; #赋值
if($m > $n) {$m} else{$n}
}
这些变量是此代码块中的私有的(或者局部的)变量;别的$m 和$n 不会影响此处的两个变量。而且,其它地方的代码不
能访问或者修改这些变量◆。你可以将此子程序放在任意地方而不用担心它们会和程序其它地方的$m,$n(如果有)变量
混淆◆。在if 代码块内部,其语句没有分号。Perl 允许省略括号中最后一条语句的分号,在实际代码中,通常仅当此代码
块仅包含一条语句时才省略此分号。
◆高级的程序员知道在程序外部可以通过引用而非变量名字来访问私有变量。
◆当然,如果此程序中还有一个叫做$max 的子程序,那将引起混淆。
前一例中的子程序可以变得更简单。你注意到列表($m,$n)书写了2 次吗?my 操作符可以用在有括号的变量的列表中,因
此,通常将上述两个语句如下书写:
my($m,$n) = @_;
上面的一条语句创建了一些私有变量并给它们赋值,第一个为$m,第二个为$n。几乎每一个子程序都由类似的语句开头。
当看见那一行时,你就知道此子程序需要2 个变量,在此子程序中非别被叫做$m 和$n。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 23:43 , Processed in 0.025732 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表