PERL中的私有变量
来源:互联网 发布:linux和c 编辑:程序博客网 时间:2024/06/11 11:21
默认情况下,PERL中所有的变量都是全局变量,也就是说在程序中的任何地方都可以访问他们,但是你也可以随时用一个操作符来创建私有的词法变量,即my
sub max
{
my($m,$n)=@_;
if($m>$n)
print $m;
else
print $n;
}
使用my操作符限定过的变量,其作用域只在其所在的代码块中有效,不被其他代码访问,另外,PERL中允许最后一个语句块省略分号,但是,还是别用了,不能很好地养成好的
编码习惯
更好的方式是在使用参数之前,进行参数的检测,比如,看下是否传递进来的是两个参数
sub max
{
if(@_!=2){
print "warn the param is not propley";#有一点要注意的是,在if语句之后最好加上花括号,作为代码块的起始和结束标记,这样不怎么容易出问题
}
my($m,$n)=@_;
if(@_[0]>$n)
{
print $m;
}
else
{
print $n;
}
}
&max(3,4);
当然最好的情况是程序能够自行处理可变参数的参数列表,代码如下:
sub max
{
#首先获得参数列表中的第一个值,作为其实最大值
my $max_so_far=shift @_;
foreach(@_)
{
#未使用指定遍历列表的控制变量时,自动使用默认变量,$_
if($max_so_far<$_)
{
$max_so_far=$_;
}
}
print $max_so_far;
}
&max(3,4,4,5);
如果使用该函数的人将空列表传入程序,作为参数列表,我也没有关系,这样的话,$max_so_far是undef,而foreach循环则根本不执行
现在说下词法变量my,即类似于C中的作用域限定符,
书中说my操作符当不是用小括号时,只是声明了一个变量,
my $fred=1,$h=3;这样的话$h是可以使用的,不知道怎么理解,暂时不作处理
PERL中所有新的变量,标量的初始值是undef,列表的初始值是空列表
- PERL中的私有变量
- oc中的私有变量
- 子程序中的私有变量
- python中的私有变量
- perl 在类中建私有成员变量和私有成员函数
- Perl中的变量(1)
- Perl中的词法变量
- Perl中的特殊变量
- perl中的隐藏变量
- Perl中的隐藏变量
- Perl中的特殊变量
- perl中的变量内插
- Perl中的特殊变量
- Python类中的私有变量
- python 类中的私有变量
- Python类中的私有成员(私有函数,私有变量)
- Python类中的私有成员(私有函数,私有变量)
- Perl 中的特殊变量 $&, $`,$' ,@_
- hdu-1219-AC Me
- Effective C++ 第二版 25)避免指针和数字重载 26)二义性
- 变推式为拉式营销——Leo鉴书(30)
- ActionScript Workers Tutorial (ActionScript多线程教程)
- Spring AOP 详解
- PERL中的私有变量
- 如何坚持写作
- HDU 4027 —— Can you answer these queries?(线段树)
- 【玩转cocos2d-x之十】cocos2d-x坐标系
- SecureCRT-保持ssh登录不断线&backspace mapping del
- [并查集]染色问题
- 【容斥原理】wikioi 1778 统计公共子序列个数
- Silverlight 2.5D RPG游戏技巧与特效处理:流光追影
- Myeclipse内存设置