perl基础---循环控制
Posted EasyPerl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl基础---循环控制相关的知识,希望对你有一定的参考价值。
在编程中, 我们往往需要进行不同情况的判断, 选择, 重复操作。这些时候我们需要对简单语句来添加循环控制变量或者命令。
if/unless
我们需要在满足特定条件下再执行的语句, 可以通过if/unless(else)来控制:
my $num = 5;
if ($num >= 3){
print "biger than or equal 3\n";
}else{
print "less than 5\n";
}
unless ($num == 5){
print "not equal 5\n";
}else{
print "equal 5\n";
}
print "$num is 5\n" if $num == 5;
一般对于只有一个执行语句的情况, 我们可以根据需要将if/unless后置,这样代码可以更简洁。
需要特殊指出的是, 在Perl中 数字0, 空字符'', 以及undef都会被判定为false。
while/until
我们需要在某一条件进行重复操作时, 可以使用while/until
my $num = 5;
while($num <= 15){
$num++;
}
continue {
print "$num\n";
}
continue块每次循环都会执行, 哪怕退出了该循环。
for/foreach
但明确循环次数时, 我们一般使用for循环(for等效foreach),
Perl也支持其他语言的3条件for, 但一般不推荐也不用
for(my $i = 0; $i < 10; $i++){
....
}
perl中经常使用的方式
my @nums = (1,2,3,4,5,6,7);
for my $num(@nums){
print "$num\n";
}
这种方式, 我们不需要设置过多的条件, 只需要依次迭代所有的元素即可, 代码维护性也更强
在循环中, 我们可以使用last next redo来控制单次/整个循环
在没有标签的情况下:
last:退出并结束当前循环(如多层循环, 则只退出最内层)
next: 退出并结束当次循环, 并开始下次循环
redo: 重新开始当次循环
在有标签的情况下, 会直接忽略代码所在的层次, 直接根据标签的层次来计算。
perl中没有 switch(case), 因为不需要, perl可以很容易的通过多种方法来达到switch(case)的效果。
以上是关于perl基础---循环控制的主要内容,如果未能解决你的问题,请参考以下文章