perl总结(2)

控制语句

1.条件语句

有以下几种形式的条件语句,和C,java还是类似的。
if(expression)BLOCK;

if(expression)
BLOCK1
elseBLOCK2;

if(expression1)
BLOCK1;
elsif(expression2)
BLOCK2;
else
BLOCK3;

#倒置的if语句
expressionif(test_expression);

特别注意这里的elsif不是elseif,这个关键词来源于ada语言。

其中expression可能涉及到的关系运算符:
1)数字值比较:==,>,<,>=,<=,!=;
2)字符串比较:eq,gt,lt,ge,le,ne;(undef被当作假来处理)
3)逻辑运算符:&&,||,和!;and,or,not等。

2.循环语句
循环语句主要有以下一些形式。其中while语句和for语句延续了C中的风格;until语句和while语句可以互相转换。特别说明一下foreach语句,括号中的表达式用于产生一个列表。然后列表中的每个元素依次赋给循环变量,并对每个元素执行一次循环语句。注意循环变量是元素本身的一个引用,而不是元素的一个拷贝。因此,修改循环变量将修改原来的数组。

while(expression)
BLOCK;

doBLOCKwhile(expression);

until(expression)
BLOCK;

for(initialization;test;increment)
BLOCK;

foreach$each(@list)
BLOCK;

例子:

@list=(1,2,3,4,5);
foreach$temp(@list){
if($temp==2){
$temp=20;
}
}
此时@list已变成了(1,20,3,4,5)。

3.局部跳转语句
perl里面有一些局部跳转语句,能够帮助我们控制循环或者让程序下一步跳转到特定的位置。最常用到的是last,next和redo

last:类似于C语言中的break它让程序跳出循环,也就是跳出当前BLOCK,紧接BLOCK之后的代码往下。

例如:

for($i=1;$i<=10;$i++)

{

Lastif($i==5)#如果$i等于5的话就退出for循环

print"$i\n";

}


next:相当于C语言中的continue语句,使得当前循环到此为止,而开始下一次循环。

例如下面的程序是将1到100之间的奇数显示出来。

for($i=0;$i<=100;$i++)

{

#如果是2的倍数的话,就进入下一次循环

nextunless($i%2);

print"$i是一个奇数!\n";

}

Redo:类似于上述介绍过的next语句,但是它不会判断循环的退出条件。
例如以下例子:

$i=-1;

while($i<=10)

{

$i++;

redounless($i%2);

print$i,"是一个奇数!\n";

}

会打印出:

1是一个奇数!

3是一个奇数!

5是一个奇数!

7是一个奇数!

9是一个奇数!

11是一个奇数!

读写文件和目录处理

PerlI/O操作都是通过文件句柄来进行的。在缺省的情况下,有默认的句柄STDIN(代表标准输入)、STDOUT(代表标准输出)和STDERR(代表标准错误输出)。下标中介绍了如何读写文件,删除和重命名文件,创建和删除目录。

perl总结(2)

子程序

子程序,也称作例程或函数。它接受多个输入参数,返回一个输出参数。使用这样一段分离的代码完成一个特殊的功能,可以减少重复代码同时使得程序更易读。

一、定义语法如下:

subSubroutine_name[()]

{

sequence_of_statements;

}

举例如下:

subGetCurrentPath()

{

$fs=Win32::OLE->new("Scripting.FileSystemObject");

$folder=$fs->GetFolder(".");

$ls_current_path=$folder->path;

return$ls_current_path;

}#GetCurrentPath

二、调用方法如下:
1、用&调用
&subname;
...
subsubname{
...
}
2、先定义后调用,可以省略&符号
subsubname{
...
}