Perl流程控制语句用法指南

Ares不是Geek 2010-07-19

本文和大家重点讨论一下Perl流程控制语句的概念,在学习Perl语言的过程中,Perl流程控制语句是非常实用的知识必须要掌握,希望通过本文的学习你对Perl流程控制语句有初步的了解。

Perl流程控制语句

条件选择语句1

if(条件表达式){
语句块1;
}else{
语句块2;
}

条件选择语句2

unless(判别运算式)
{
语句2;
}else{
语句1;
}

if条件语句嵌套

if(条件表达式1)
{
语句1
}elsif(条件表达式2){
语句2
}elsif(条件表达式3){
语句3
}else{
语句4
}

例:

#!/usr/bin/Perl-w  


print"input?\n";  



$name=<STDIN>;  



chop($name);  


if($nameeq"bo")  


{  


print"mynameis$name\n";  


}elsif($nameeq"ji"){  


print"mylastnameis$name\n";  


}elsif($nameeq"liu"){  


print"myfirstnameis$name\n";  


}else{  


print"unkonw------!!!!!!!!!!\n";  


}  

灵活使用Perl

条件表达式&&语句块

这的确是个逻辑与操作,若条件表达式为“真”,要根据后面语句块的执行结果才能判断整个逻辑与操作的结果,这样就会执行后面的语句;而当条件表达式为“假”,则整个表达式为“假”,不用考虑
后面语句块的值。所以为假时的语句块不被执行。

open(FH,">filename")||die"打开文件出错。";
这时整个表达式的含义是:当前面的语句执行结果是“真”时,就不执行后面的语句了;当前面的语句执行出错,结果是“假”时,就执行后面的语句。这里die的含义是输出出错信息。

if语句的简写

[root@test-linuxtmp]#catifp.pl  


#!/usr/bin/Perl-w  



$i=1;  




#if($i<10){  



#  



#print"$i<10\n";  



#  


#}  



print"$i<10\n"if($i<10);  

Perl流程控制语句之for循环

for(初始语句,条件判断语句,循环变量步进速度){
循环体语句
}

[root@test-linuxtmp]#catpfor.pl  


#!/usr/bin/Perl-w  



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



print"$i\n";  


}  

Perl流程控制语句之while/until循环
while(条件表达式){
循环体语句
}

[root@test-linuxtmp]#catpwhile.pl  


#!/usr/bin/Perl-w  



$i=1;  




while($i<10){  



print"$i\n";  


$i++;  


}  


 


当条件表达式为“假”时,执行循环体语句  


until(条件表达式){  


循环体语句  


}  


#!/usr/bin/Perl-w  



$i=0;  




until($i>10){  



print"$i\n";  


$i++  


}  


 

Perl流程控制语句之do{}while/until循环

do{

}while/until(条件表达式);
do{}while的语意是执行循环体,直到条件表达式为“假”;而do{}until的语意是执行循环体,直到表达条件式为“真”。

Perl流程控制语句之foreach循环

foreach标量(标量)
{
循环体语句
}

[root@test-linuxtmp]#catforeach.pl  


#!/usr/bin/Perl-w  



@array=(1,2,3,4,5);  



foreach$i(@array){  


print"$i\n";  


}  


#!/usr/bin/Perl-w#######有一个默认变量$_  



@array=(1,2,3,4,5);  



foreach(@array){  


print;  


}  


 


#!/usr/bin/Perl-w  



@array=(1,2,3,4,5);  



foreach$_(@array){  


print$_;  


}  


 

循环体控制next和last等完成。

[root@test-linuxtmp]#catnext.pl  


#!/usr/bin/Perl-w  



@array=("a","b","c","d","e","f");  



foreach(@array){  


if($_ge"c"){  


last;##跳出循环  


}  



for($i=1;$i<7;$i++){  



if(($i%2)==1){  


next;##进行下一次循环  


}  


print"$_"x"$i";  


print"\n";  


}  


}  


print"\nDone!\n";  

相关推荐