基本的if语句能够判断小括号内的表达式取值,如果值为true,则执行其后跟随的表达式。
if语句 if ( 表达式 ) {
语句;
}
EXAMPLE if ( $a == $b ){ print "$a is equal to $b"; }
if/else语句 if/else实现了双向判断。如果if后面表达式条件为true,则执行其后的语句 ;否
则执行else后面的语句。
if ( 表达式 ) {
语句;
} else {
语句;
}
EXAMPLE $coin_toss = int (rand(2 )) + 1; # Generate a random # number between 1 and 2 if( $coin_toss == 1 ) { print "You tossed HEAD\n"; } else { print "You tossed TAIL\n"; }
if/elsif语句 if/elsif/else提供了多路分支选择功能。如果if后面的表达式值不是true,则会依
次判断其后每个elsif的条件,直到其中某个条件值为true;如果没有一个为true
的话,则执行最后的else语句。
if ( 表达式 ) {
语句;
elsif(表达式){
语句;
} elsif(表达式){
语句;
else{
语句;
}
EXAMPLE # 1 is Monday, 7 Sunday $day_of_week = int(rand(7)) + 1; print "Today is: $day_of_week\n"; if ( $day_of_week >=1 && $day_of_week <=4 ) { print "Business hours are from 9 am to 9 pm\n"; } elsif ( $day_of_week == 5) { print "Business hours are from 9 am to 6 pm\n"; } else { print "We are closed on weekends\n"; }
和C/C++类似,Perl 也为if/else语法结构提供了相应的简化模式,该模式拥有两个运算符和三
个操作数(因此又称为三元运算符)。如果条件值为true,则执行紧跟在问号后面的语句;如果是
false,则执行冒号后面的语句。其格式为:
(条件) ? 条件为true时执行的语句 : 条件为false时执行的语句
EXAMPLE $coin_toss = int (rand(2 )) + 1; # Generate a random number # between 1 and 2 print ($coin_toss == 1 ? "You tossed HEAD\n" : "You tossed TAIL\n");
循环结构能够指定一段重复执行多次的代码。Perl 支持多种不同类型的循环:while循环、dowhile循环、for循环以及foreach循环。
while/until 循环
while循环:
while后面跟随一个以小括号包围起来的表达式,以及一段执行语句。当表
达式取值为true时,便继续执行循环内容。其语法结构为:
while(条件表达式){
代码段A
}
EXAMPLE $count=0; # Initial value while ($count < 10 ){ # Test print $n; $count++; # Increment value }
until 循环:
until 后面跟随一个以小括号包围起来的表达式,以及一段执行语句。当表
达式取值为false时,继续执行循环内容。其语法结构为:
until(条件表达式){
代码段A
}
EXAMPLE
$count=0; # Initial value
until ($count == 10 ){ # Test
print $n;
$count++; # Increment value
}
do-while循环 do-while循环类似于while循环,所不同的是它是在循环体末尾检查循环表达式的,而不是在开头检查。这就保证了循环体至少能执行一次。
其代码结构为:
do{
代码段A
}while(表达式);
EXAMPLE $count=0; # Initial value do{ print "$n "; $count++; # Increment value while ($count < 10 );# Test }
for循环 for循环需要判断三个条件表达式的取值,各表达式之间以分号隔开。第一个表达
式负责初始化变量,在整个循环过程中只调用一次。第二个表达式负责判断条件值
是否为true,如果是true的话便执行循环体;否则就退出循环。当循环体执行完毕
后,控制权便转移到第三个表达式,由它负责更新待检测变量的值。然后,再由第
二个表达式进行下一次判断,如此反复。其代码结构如下所示:
for(初始化鍬量;条件表达式;自加/自减){代码段
}
EXAMPLE for( $count = 0; $count < 10; $count = $count + 1 ){ print "$count\n"; }
foreach循环 foreach循环仅用于逐个遍历列表(list)内容。
foreach$列表项(@列表){ print$列表项,"\n"; } EXAMPLE @dessert = ( "ice cream", "cake", "pudding", "fruit"); foreach $choice (@dessert){ # Iterates through each element of the array echo "Dessert choice is: $choice\n"; }
循环控制 last 语句可用于从循环体中跳出一个循环。next 语句可用于跳过当前这次循
环的剩余内容,直接从头开始下一轮循环。
EXAMPLE $n=0; while( $n < 10 ){ print $n; if ($n == 3){ last;# Break out of loop } $n++; } print "Out of the loop.<br>"; EXAMPLE for($n=0; $n<10; $n++){ if ($n == 3){ next;# Start at top of loop; # skip remaining statements in block } echo "\$n = $n<br>"; } print "Out of the loop.<br>";