控制程序流
本章中将要学习:语句块;运算符;循环;标号;程序执行后退出Perl
一、if语句
if (expressn) BLOCK
if ($r == 5) {
print 'The value of $r is equal to 5.';
}
只有当表达式是真的时候,表达式后面的语句块才运行;如果表达式不是真,那么else后面的语句块运行。
$r=<STDIN>;chomp $r;
if ($r == 10) {
print '$r is 10';
} else {
print '$r is something other than 10....';
$r=10;
print '$r has been set to 10';
}
请记住,运算符=用于赋值,而==则用于测试一个等式。
$r=10;
if ($r==10) {
print '$r is 10!';
} elsif ($r==20) {
print '$r is 20';
} else {
print '$r is neither 10 nor 20';
}
==================================================
如果想测试非数字值,可以使用字母关系运算符
eq $e eq $t 等于
gt $e gt $t 大于
lt $e lt $t 小于
ge $e ge $t 大于等于
le $e le $t 小于等于
ne $e ne $t 不等于
=========================================================
逻辑运算符
&& and $s &&$t 当都为真,才是真
|| or $a || $b 当有一个为真,才是真
! not !$m 不为真,才为真(求反)
if ($x and $y and not $z) {
print "All conditions met.\n";
}
运算符|| 和 or 并不完全相同,|| 运行优先级要高于or。也适用于&& /and
=========================================================
二、用while进行循环
当perl遇到while语句时,它就计算该条件。如果条件计算的结果是真,代码就运行。当运行到代码块的结尾时,表达式被重新计算,如果结果仍然是真,代码块重复执行。
$counter=0;
while ($counter < 10) {
print "Still counting,,,,,,,,$counter";
$counter++;
}
=================================================================
三、使用for循环
for语句是perl循环结构中最复杂和最有用的
for ($a=0;$a<10;$a=$a+2) {
print "a is now $a\n";
}
在上面的代码中,$a设置为0,执行测试表达式$a<10,发现结果为真。循环的本身输出了一条消息,然后递增语句$a=$a+2开始运行,将$a的值递增2.
=========================================================
明细控制
while ($i<10) {
last if ($i==5);
$i++;
}
last语句能够在$i的值是5时使while循环退出
next语句使得控制权被重新传递给循环的顶部
for ($i=0;$i<100;$i++) {
next if (not $i %2);
print "An odd number=$i\n";
}
==================================================
退出perl
exit语句是最后的一个流控制工具。当perl遇到exit语句时,程序就停止执行,perl 将一个退出状态返回给操作系统。
if ($user eq 'quit') {
print "Good bye\n";
exit 0;
}