if
控制结构
单条件
语法:
if (condition) statement;
如果condition为真, statement语句执行;否则跳过。
如果执行语句为多个:
if (condition) {
statement1;
statement2;
...
}
执行语句(单个)也可以写在前面:
statement if (condition)
多条件
if (condition1) {
statement1;
}
elsif (condition2) {
statement2;
}
else{
statement3;
}
unless
结构
unless
结构是if
结构的反义结构
- 当condition为假,执行statement1; 否则,执行statement2.
unless (condition) {
statement1;
}
else {
statement2;
}
foreach
控制结构
for
控制结构
语法:
for (初始值;条件;表达式){
执行语句;
}
一个例子, 找出array中值大于60的元素:
use strict;
use warnings;
my @array = (1,2,3..50,55,60,43,32,82..99);
# 将数组赋值为一个变量,变量得到的是数组元素的个数
my $length_array = @array;
for (my $i=0; $i<$length_array; $i++)
{
if ($array[$i] > 60)
{
printf "item $i, value is $array[$i]\n";
}
}
-
for循环的跳跃:
next
跳过本次循环 -
for循环的中断:``
跳到循环的最后位置,此时循环就结束了,相当于其他语言的break
一个例子, 找出array中第一个值大于60的元素:
use strict;
use warnings;
my @array = (1,2,3..50,55,60,43,32,82..99);
# 将数组赋值为一个变量,变量得到的是数组元素的个数
my $length_array = @array;
for (my $i=0; $i<$length_array; $i++)
{
if ($array[$i] < 60)
{
printf "item $i, value is $array[$i]\n";
next;
}
else
{
printf "i is $i, its value is $array[$i], greater than 60\n";
last;
}
foreach
控制结构
foreach
是for
循环结构的一种变体,
foreach
循环会逐个遍历列表中的值,并依次迭代执行循环过程。
语法:
foreach 变量 (列表)
{
执行语句;
}
一个例子, 找出array中值大于60的元素:
use strict;
use warnings;
my @array = (1,2,3..50,55,60,43,32,82..99);
foreach my $item (@array) # 元素的读取是无序的
{
if ($item > 60)
{
printf "item is $item \n";
}
}
默认变量
$_
: 会取perl中的默认变量值
一个例子, 找出array中值大于60的元素:
use strict;
use warnings;
my @array = (1,2,3..50,55,60,43,32,82..99);
foreach (@array) # 元素的读取是无序的
{
if ($_ > 60)
{
printf "item is $_ \n";
}
}
说明:
-
foreach
取得元素的顺序是随机的 -
可以使用
sort
来对元素进行排序后,再取出
sort{$a <=> $b}@array;
# array都是数字时; array中的元素按照从小到大排列
sort{$a cmp $b}@array;
# array都是字母时; array中的元素按照从小到大排列 -
next
last
的用法与for
中的用法类似
while
控制结构
语法:
while (条件) 执行语句;
或者
while (条件)
{
执行语句1;
执行语句2;
...
}
- 可以使用
last
跳出while
循环
until
控制结构
until
结构和while
结构 相反, 当条件为假时,才执行循环语句。
类似于if
和 unless
的关系
-
until
+continue
当条件为假,执行执行语句1
,执行执行语句2
; 否则,都不执行。
until (条件)
{
执行语句1;
}
continue
{
执行语句2;
}
switch
控制结构
Perl的源码中并不支持switch
语法:
switch (条件)
case 条件值1: 执行语句1;
case 条件值2: 执行语句2;
default: 执行语句(都不满足)
网友评论