Perl流程控制语句用法指南

开发 架构
Perl语言中Perl流程控制语句有很多值得学习的地方,你对Perl流程控制语句的概念是否了解,这里和大家分享一下,希望本文的介绍能让你有所收获。

本文和大家重点讨论一下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
}

例: 

  1. #!/usr/bin/Perl-w  
  2. print"input?\n";  
  3. $name=<STDIN>;  
  4. chop($name);  
  5. if($nameeq"bo")  
  6. {  
  7. print"mynameis$name\n";  
  8. }elsif($nameeq"ji"){  
  9. print"mylastnameis$name\n";  
  10. }elsif($nameeq"liu"){  
  11. print"myfirstnameis$name\n";  
  12. }else{  
  13. print"unkonw------!!!!!!!!!!\n";  
  14. }  

 灵活使用Perl

条件表达式&&语句块

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

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

if语句的简写 

  1. [root@test-linuxtmp]#catifp.pl  
  2. #!/usr/bin/Perl-w  
  3. $i=1;  
  4. #if($i<10){  
  5. #  
  6. #print"$i<10\n";  
  7. #  
  8. #}  
  9. print"$i<10\n"if($i<10);  

Perl流程控制语句之for循环

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

  1. [root@test-linuxtmp]#catpfor.pl  
  2. #!/usr/bin/Perl-w  
  3. for($i=1;$i<10;$i++){  
  4. print"$i\n";  
  5. }  

 #p#

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

  1. [root@test-linuxtmp]#catpwhile.pl  
  2. #!/usr/bin/Perl-w  
  3. $i=1;  
  4. while($i<10){  
  5. print"$i\n";  
  6. $i++;  
  7. }  
  8.  
  9. 当条件表达式为“假”时,执行循环体语句  
  10. until(条件表达式){  
  11. 循环体语句  
  12. }  
  13. #!/usr/bin/Perl-w  
  14. $i=0;  
  15. until($i>10){  
  16. print"$i\n";  
  17. $i++  
  18. }  
  19.  

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

do{

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

Perl流程控制语句之foreach循环

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

  1. [root@test-linuxtmp]#catforeach.pl  
  2. #!/usr/bin/Perl-w  
  3. @array=(1,2,3,4,5);  
  4. foreach$i(@array){  
  5. print"$i\n";  
  6. }  
  7. #!/usr/bin/Perl-w#######有一个默认变量$_  
  8. @array=(1,2,3,4,5);  
  9. foreach(@array){  
  10. print;  
  11. }  
  12.  
  13. #!/usr/bin/Perl-w  
  14. @array=(1,2,3,4,5);  
  15. foreach$_(@array){  
  16. print$_;  
  17. }  
  18.  

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

  1. [root@test-linuxtmp]#catnext.pl  
  2. #!/usr/bin/Perl-w  
  3. @array=("a","b","c","d","e","f");  
  4. foreach(@array){  
  5. if($_ge"c"){  
  6. last;##跳出循环  
  7. }  
  8. for($i=1;$i<7;$i++){  
  9. if(($i%2)==1){  
  10. next;##进行下一次循环  
  11. }  
  12. print"$_"x"$i";  
  13. print"\n";  
  14. }  
  15. }  
  16. print"\nDone!\n";  

注:当外层循环变量大于等于“c”时,就跳出外层循环,代码执行完毕:内层循环中,当循环变量是奇数时,就不执行打印操作,而执行下一次循环。这样就是下面的结果。

[root@test-linuxtmp]#./next.pl
aa
aaaa
aaaaaa
bb
bbbb
bbbbbb
Done!

【编辑推荐】

  1. Perl函数手册专家指导
  2. Perl文件句柄概念详解
  3. 解析两大Perl标量的操作符
  4. Perl基础 Perl数组学习指南
  5. Perl基础 解析Perl标量和数组概念
责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-26 17:09:00

Perl模块

2010-07-26 15:27:50

Perl foreac

2010-07-21 10:10:50

Perl split函

2010-07-23 15:51:27

Perl开发工具

2010-07-19 15:25:39

Perl标量转换函数

2010-07-21 09:38:51

2010-07-20 14:52:51

Perl语法

2010-07-16 14:05:58

Perl数组

2010-07-21 14:25:24

Perl格式化输出

2010-07-21 13:35:22

Perl模式匹配

2013-02-18 13:44:22

CSSSASSWeb

2010-07-19 14:20:57

Perl函数

2010-07-19 14:45:07

Perl进程控制函数

2010-05-11 12:53:58

Unix awk

2010-08-12 15:20:49

Flex Builde

2010-08-09 12:42:16

Flex module

2010-07-26 14:54:07

Perlsplit函数

2010-07-30 10:13:38

Flex控件

2010-08-16 15:11:02

DIV

2010-08-04 14:07:59

Flex事件机制
点赞
收藏

51CTO技术栈公众号