Perl语言入门(03 流程控制语句)

由于公司需要,本人最近在学习Perl这种脚本语言,本文是我在学习Perl的过程中总结出来的一些心得和笔记,希望能够帮助也在学习Perl的各位同僚。废话不多说直接上干货!!!

———————————————————————————干货分割线 —————————————————————————

If语句:若if语句块只有一个表达式,可将if写成如下语句:

表达式 if(判断语句)

If(){...}

elsif(){...}

else{...}

exp:

$a = "abc";
$b = "def";
if($a == $b){
    print "eques";
}

$ a和$b中存放的两个值实际上是要测试它们之间是否相等。当P e r l期望数字值的时候,如果使用了非数字字符串,那么这些字符串的计算结果将是0。因此,上面这个i f表达式在P e r l看来就像是: i f( 0 == 0)。这个表达式的计算结果是真,所以运行结果并不是你想要的结果。只要打开警告开关,控制台就会输出相应的警告信息提醒你。如:

 

如果你想要测试非数字值,你可以使用另一组P e r l运算符,如图:

 Perl语言入门(03 流程控制语句)_第1张图片

这些运算符通过从左到右观察每个字符,然后按照A S C I I的顺序对它们进行比较,来确定“大于”和“小于”。这意味着字符串按照升序进行排序,大多数标点符号放在最前面,然后是数字,接着是大写字母,最后是小写字母。例如, 1 5 0 6大于H a p p y,而H a p p y又大于h a p p y。

 Perl语言入门(03 流程控制语句)_第2张图片

Last语句:满足条件时能使当前正在运行的最里面的循环块退出。

exp:

while($i < 15){
print "$i\n";
last if($i == 5);  #last类似于break功能
$i++;
}

输出结果为:

 Perl语言入门(03 流程控制语句)_第3张图片

结果依次为:空,1,2,3,4,5

PS:$i等于5时退出while循环。可知$i未定义时其值为undef,作为输出结果时为空.作为数字运算时他的值为0.


undef这是一个特殊的值,意为:未定义,任何未设置的变量都为undef,且在函数运行失败时也返回该值。在if语句测试时undef返回假,进行数学运算时他被视为0


next语句:使得控制权被重新传递给循环的顶部。

Exp:

for($i = 0;$i<200;$i ++){
      next if(not $i % 2);
      print “An odd number = $i\n”;
}

输出从0-98之间的所有偶数。


标号:给循环语句加标号,一般为全部字母大写

Exp

OUTER: while($expr){

         INNER:while($expr){

                             Statement;

                      }

             }

Last,redo,next都可以带有标号,作为参数。这样就可以退出特殊的语句块。

Exp

OUTER:for($i = 0 ;$i < 100;$i ++){
                  for($j = 0;$j <100;$j ++){
                          if($i * $j == 140){
                                 prnt “The product of $i and $j is 140”;
                                 last OUTER;
                            }
                  }
         }

这样last语句退出的就是最外层循环了。这个代码只输出他找到的140的第一个因子。

Exit语句:当Perl遇到exit时,程序停止执行,Perl将一个退出状态返回给操作系统。退出状态0意味着一切运行正常。

Exp

if($response eq ‘quit’){
            print “Good bye\n”;
           exit 0;
}

逻辑运算符

Perl语言入门(03 流程控制语句)_第4张图片 

Perl也遵循短路或原则。运算符优先级:

||  > or ,&& > and ,! > not

Perl运算符不仅返回真假,实际上是返回计算得出的最后值。如:5&&7返回7.


你可能感兴趣的:(perl,脚本语言,流程控制,语句)