Perl是一种粘性语言,如果你有其他语言的基础的话,你会发现他的流程控制完全和你所知的一模一样。
简单说一下他们的
区别
:
-
Perl的elsif在其他语言里头可能表示为else if
-
Perl的last,next在其他语言里头可能叫break和continue
-
不用找了,Perl中没有switch,其实这用if else也是可以实现的,不是么?
-
Perl可能比你知道的语言里头多了这些:条件控制结构unless、循环控制结构until
-
Perl还有一些特殊的写法
还是详细介绍一下Perl的流程控制吧
if(条件){执行内容}
if-else结构
if(条件){执行内容}else{执行内容}
if-elsif-else结构
if(条件1){执行内容}elsif(条件2){执行内容}else{执行内容}
unless结构
unless(条件){执行内容}
说明:unless表示除了满足条件的,其他都可以执行
unless-else结构
unless(条件){执行内容}else{执行内容}
语法结构:
for循环
for(循环参数初始化;循环终止条件;循环参数累积方式){执行语句}
注意:for循环第一次执行也会进行循环终止条件判断。(你可能知道,但可能有人没注意)
While循环
while(循环终止条件){执行语句}
Until循环
until(循环终止条件){执行语句}
while和until的区别:while当条件返回false时终止循环;until当条件返回true时终止循环;
do-while循环
do{执行语句}while(循环终止条件);
while/until和do-while区别:while/until如果循环终止条件为false,则一次都不会执行;do-while不管条件,至少会执行一次。
foreach循环
foreach $var (@array){$var}
简单说明$var相当于一个容器,存放数组每一个位置存放的数据。等价于for($flag=0;$flag<@array;$flag++){$var = $array[$flag];}
单行条件/循环结构
说明:如果条件结构或循环结构下只包含一行执行内容,可以采用以下写法;虽然条件判断写在最后面,但是会先执行.
if(条件){单行执行语句;}等价于:单行执行语句;if(条件);
unless(条件){单行执行语句;}等价于:单行执行语句;unless(条件);
until(终止条件){单行执行语句;}等价于:单行执行语句;until(终止条件);
while(终止条件){单行执行语句;}等价于:单行执行语句;while(终止条件);
循环控制结构
last;退出当前循环体;
next;停止当前执行内容,进入下一次循环
Perl 有goto label;的语法,这种语法让流程控制十分灵活;缺点:让程序较难管理和维护。还是不要用了。
注意:数字 0, 字符串 '0' 、 "" , 空 list () , 和 undef 为false,其他值均为true。 true 前面使用!或not则返回 false 。
1.1 if
语句
Perl
if
语句
由一个布尔表达式后跟一个或多个
语句
组成。
if(...
首先答案是否定的。
perl
以灵活著称,不会限制我们一使用if就要用上花括号的。我们在使用c++语言等编程语言的时候,如果if
语句
块中只有一个
语句
时,那么if
语句
需要的花括号可以省略。在
perl
,用if前置
结构
时必须使用花括号,用if后置
结构
的时候则不必用花括号。见代码:#!/usr/bin/
perl
$a = 0;$b = 1;if(0 == $a){print qq($a\n);}print qq...
if的匹配
条件
语法 : if ( $a =~ m/ ... /){ ... }
通常我们会看到这样的
语句
:if ( / ... / ){ ... }
没有变量$a, 其实不然,在仔细看看,这句应该是在读取一个文件之类的,实质上有变量$_,当$_作为变量时,我们可以在
条件
中省略,因为if知道谁是变量 。
$a = "char22";
if(my ($a) = $a =~
首先答案是否定的。
perl
以灵活著称,不会限制我们一使用if就要用上花括号的。
我们在使用c++语言等编程语言的时候,如果if
语句
块中只有一个
语句
时,那么if
语句
需要的花括号可以省略。
在
perl
,用if前置
结构
时必须使用花括号,用if后置
结构
的时候则不必用花括号。
#!/usr/bin/
perl
$a = 0;
$b = 1;
if(0 == $a){
print q
注意,数字 0, 字符串 '0' 、 "" , 空 list () , 和 undef 为false,其他值均为true。 true 前面使用!或not则返回 false 。
Perl
提供了下拉的
条件
语句
:
next_statment;程序执行到这里时,如果 some_expression 为真,则执行大括号内的其它
语句
;如果 some_expression 为假,程序则跳过大括号内的
语句
块,直接执行 next_statmen
1. 循环
语句
注意,数字 0, 字符串 '0' 、 "" , 空 list () , 和 undef 为false,其他值均为true。 true 前面使用!或not则返回 false 。
1.1 while 循环
while
语句
在给定
条件
为 true 时,重复执行
语句
或
语句
组。循环主体执行之前会先测试
条件
。
while(condition)
#condition为真执行该
语句
块
statement(s);
1.2 until
语句
un...