一、条件语句:有以下几种类型
1、if (条件表达式) {语句块}
2、单条Perl语句 if( 条件表达式);
3、if (条件表达式) {语句块1}
else {语句块2}
4、if (条件表达式1) {语句块1}
elsif (条件表达式2) {语句块2}
elsif (条件表达式3) {语句块3}
...................
elsif (条件表达式N-1) {语句块N-1}
else {语句块N}
二、循环语句:有以下几种类型
1、while循环:
while(真值条件表达式) { #循环体 }
2、until循环:
until(假值条件表达式) { #循环体 }
3、do语句:常与while循环或until循环一起使用,do语句至少要把循环体执行一次;
do
{
#循环体;
} while(真值条件表达式);
或
do
{
#循环体;
} until(假值条件表达式);
这两种循环的特点是:每次循环,先执行循环体,然后判断条件表达式;
需要注意的是:do语句块种不能使用标号;do-until结构内不能使用next、redo或last语句;
4、for循环:
标准得for语句:
for(表达式1;表达式2 ;表达式3) { #循环体 }
有两种场合可以使用该循环:
A:循环次数确定得场合;
B:循环次数不确定,但是明确给出循环结束条件;
for语句最简单得应用形式如下:
for(循环变量初值;循环条件;循环变量值修改) { #循环体 }
5、foreach循环:
这类循环得意义实际上与for语句得意义一样;foreach能做的事情,for语句照样能做;一般这样区分for语句和foreach语句:
A:for循环多用于循环次数确定的环境;
B:foreach循环多用于处理数组和哈希变量;
foreach语句利用Perl提供的内置列表属性来重复数组或列表;foreach处理数组、列表或哈希变量的方式如下:
foreach SCALAR (LIST) { #循环体 }
foreach循环有一个内置的列表/数组元素访问操作器,能够访问到数组、列表或哈希变量中的每一个元素;每次通过循环的时候,SCALAR就被赋予LIST中的下一个元素,然后循环体被执行;每次循环只处理列表中的一个元素,处理完所有元素之后,列表返回一个null值,也就是为假,此时退出循环;
foreach循环可以省略列表变量SCALAR(循环控制变量),此时的foreach循环的格式如下:
foreach (LIST) { #循环体 }
如果省略了列表变量SCALAR,Perl解释器会把列表中的每一个元素一个一个地赋值给默认的特殊变量“$_”,此时就把这个特殊变量“$_”看作事这个foreach循环的列表变量,它与列表变量SCALAR的功效相同;
列表变量的作用域仅仅限于foreach循环体中,它不影响循环体外的同名变量;这一点与for循环中的循环控制变量不同;
用foreach循环处理数组:
foreach $Variable (@Array) { #循环体 }
用foreach循环处理数组时,如果改变了数组循环变量$Variable,那么就会改变数组中相应元素的值,这和用foreach循环处理列表时大不相同;
用foreach循环处理哈希变量:
由于哈希变量是使用任意类型的关键字来作为下标索引的数组,而且哈希变量的索引不按次序存放,也不按顺序读出,所以用foreach循环处理哈希变量的时候要配套地使用函数keys()和values():
foreach $Index (keys(%Hash)) { #循环体 }
或
foreach $Index (sort(keys(%Hash))) { #循环体 }
foreach $Value (values(%Hase)) { #循环体 }
Perl提供的存放系统当前环境变量的内置特殊哈希变量:%ENV