perl学习笔记4 z


1.  代码块标签

对任何循环块来说,除了do/while或者do/until结构外,他们都可以设置一个“标签”(Label)。除了来对代码块作简要说明之外,这个标签还可以做nextlastredo等循环控制命令的一个“目的地”或“目标”使用。注意,在指定标签名的时候,在它后面要跟一个冒号;且标签一般使用大写。

例如:

OUTER:循环块 {

}

 

2.  裸块:

“裸块”是一种包含了零行或多行代码的代码块,用一对花括号封闭起来,既可能有标签,也可能没有标签——但无论如何,都没有配套使用的控制结构关键字。这种块经常和lastredo这样的循环控制语句配合使用。注意,在一个裸块使用场合,next等价last

3.  逻辑运算符

与:       &&         AND

或:       ||             OR

非:                  NOT

 

在使用中一般使用“短路求值”。

 

4.  错误控制函数:diewarn

在程序出现错误的时候使用die函数进行错误提示,并中止程序运行。

一般写为如下格式:

       关键条件  or  die “错误:关键条件没有满足 /n;

Perl会把最近产生的系统错误消息保存在一个名为“$!”的特殊变量中。

Warn函数可以产生和die相同的输出,只是程序不中止运行。

 

5.  内建数学函数

函数

说明

例子

cos($x)

x的余弦(x用弧度表示)

Cos(0)等于1

exp($x)

xx次方

Exp(1)等于2.71828

abs($x)

x的绝对值

Abs(-5.1)等于5.1

log($x)

x的自然对数

Log(2.71828)等于1

sin($x)

x的正弦值

Sin(0)等于0

sqrt($x)

x的平方根

Sqrt(900)等于30

 

6.  用户自定义子程序

如果调用子程序时,子程序后跟一对空括号,表明子程序不接受 任何参数。

子程序的主体部分必须封闭在一对花括号内部。

子程序定义的标准格式如下:

       Sub 子程序名

       {

              语句

       }

 

7.  参数列表

子程序接收的参数保存在特殊的数组变量@_中。

特殊数组变量@_可以“处理”或者“打散”所有数组与散列。也就是说,假如向子程序同时传送一个数组值和一个标量值,那么在最终的@_中,只会包含一个简单的列表,其中列出了来自数组的数据和标量值。类似地,如果把一个散列传递给子程序,那么@_最终也会拆散所有“键—值”对,用一种“平铺直叙”的方法,把这些数据表示出来。

注意:@_不能使用$# 统计数组的位数。

8.  返回值

Ø         一个子程序完成了自己的任务,结果数据可以通过return关键字返回子程序的调用者。

Ø         在子程序中使用如下表达式:   

       $value = shift;

意味着删除子程序特殊数组变量@_中的第一个元素,并将它赋予标量变量 $value

Ø   一旦执行到return语句,子程序便会立即中止。Return以后的语句将不会执行。如果子程序没有明确的写return语句,那么子程序会默认返回它执行的最后一条语句的值。

Ø   wantarray函数:如果子程序主体中调用了这个函数,那么假如子程序是在一个列表使用场合下调用的,该函数便返回一个真值;假如子程序是在一个标量使用场合下调用的,该函数便返回一个假值。

Ø   特殊变量$”,表示默认的分隔字符是什么,通常保存着“ ”值,(即一个空格)。在双引号中打印一个数组时,$”中的值决定了在不同的值之间,应该打印什么字符作为分隔符。

 

9.  调用子程序的其他方式

Ø         Perl用类型标识符来区分不同的类型。对一个子程序的名字来说,应该在它的前面加一个类型标识符&。比如

&subroutine1();

                     它的作用便是调用一个名为subroutine1的子程序。

Ø         如果调用子程序不需要传递任何参数;或者子程序只接收调用者的@_变量(作为默认参数),那么就可以省去圆括号。但如果有任何显式参数需要传递给子程序,那么一对圆括号便是必需的。

Ø         调用子程序的另一种语法是“裸字”。子程序名周围没有任何特殊符号可帮助perl判断程序里一个名字的用途。假如在裸字之前,已经在程序中定义过字程序,那么perl会调用相应得子程序。但是,如果在裸字之前没有定义子程序,那么perl将会把裸字解释成为一个字串,不会调用与它相对应的子程序。

 

10.              生成随机数

Ø         使用函数rand可生成一个浮点标量值,它默认情况大于0,但小于1。在rand函数种可以限定随机数产生的范围,如:rand(6)  产生一个大于0,小于6的随机数。

Ø         伪随机数:函数rand随机数产生是利用前一个随机数以及一个“种子”值,来产生下一个随机数。如果使用srand函数设定种子值,将产生伪随机数。

Ø         rand函数直接生成的值肯定在如下范围内:

0<= rand ($x) < $x


你可能感兴趣的:(ALL,Perl)