流程控制程序perl中也有C语言中if,while等流程控制程序,但是细节上还是有所不同,另外perl中还存在unless和until一些语句。还有就是perl中是没有switch语句的.一 if语句与C语言中不同的有如下几点:1。 perl中采用elsif而不是C中的else if2。 perl中的真假情况如下数字0为假。空的字符串(“”)和字符串“0”为假。未定义值undef为假。其他东西均为真。3。 特殊的if表达式。。如果在i f语句块中只有一个表达式,那么该表达式实际上可以放在i f语句的前面。例如 if() {$a=1};与$a=1 if();是相同的。二 unless语句unless语句是与if语句起着相反的作用。例如 if($a>5)与 unless(!$a>5)是相同的意思.三 until语句首先看一个例子for($a=0;$a<0;$a++) { until($a==3) { print "$a/n" unless($a>5); $a++; } } until的意思就是直到a=3才执行后面的语句.四 循环中的控制语句last----break语句能够使当前正在运行的最里面的循环块退出while($i<15){last if($i==5);$i++;}或者for($i=0;$i<50;$i++){ if($i=18) { last; } }next----continue语句使得控制权被重新传递给循环的顶部,同时下一个循环的重复运行则开始进行for($i=0;$<100;$i++){ next if(not $i%2) print "even number"}redo其含义是重复此次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do循环中不起作用。五 针对列表(数组)每个元素的循环:foreach其语法如下:foreach localvar (listexpr) { statement_block; }例: foreach $word (@words) { if ($word eq "the") { print ("found the word 'the'/n"); } }注:(1)此处的循环变量localvar是个局部变量,如果在此之前它已有值,则循环后仍恢复该值。(2)在循环中改变局部变量,相应的数组变量也会改变,如: @list = (1, 2, 3, 4, 5); foreach $temp (@list) { if ($temp == 2) { $temp = 20; } }此时@list已变成了(1, 20, 3, 4, 5)
