perl的循环控制
perl的循环控制方法有如下几种
1.while
和C中的用法一样
#!/usr/bin/perl -w
use strict;
my $a=0;
while($a++ < 10)
{
print "$a ";
}
结果如下
1 2 3 4 5 6 7 8 9 10
还有一种,是后置式的
#!/usr/bin/perl -w
use strict;
my $a=0;
print "$a " while($a++ < 10);
结果如下
1 2 3 4 5 6 7 8 9 10
2.until
until的用法和while一样,只是意义刚好相反
#!/usr/bin/perl -w
use strict;
my $a=0;
until($a++ > 10)
{
print "$a ";
}
结果如下
1 2 3 4 5 6 7 8 9 10 11
同样也有后置式
#!/usr/bin/perl -w
use strict;
my $a=0;
print "$a " until($a++ > 10);
结果如下
1 2 3 4 5 6 7 8 9 10 11
3.for结构
for的用法和C语言中的用法完全一样
#!/usr/bin/perl -w
use strict;
my $a=0;
for($a=0;$a<10;$a++)
{
print "$a ";
}
结果如下:
0 1 2 3 4 5 6 7 8 9
4 foreach结构
foreach主要是用于针对列表(数组)每个元素的循环
#!/usr/bin/perl -w
use strict;
my @array=(0..10);
my $a=0;
foreach $a (@array)
{
print "$a ";
}
同样的遍历如果用for写的就是这样
#!/usr/bin/perl -w
use strict;
my @array=(0..10);
my $a=0;
for($a=0; $a
{
print "$array[$a] ";
}
两段代码运行的结果都是一样的
0 1 2 3 4 5 6 7 8 9 10
需要注意的是foreach中对$a的操作也会同时修改相应的数组元素
看看这个例子就清楚啦
#!/usr/bin/perl -w
use strict;
my @array=(0..10);
my $a=0;
foreach $a (@array)
{
print "$a ";
$a += 10;
}
print "\n";
print "@array ";
结果是这样的
0 1 2 3 4 5 6 7 8 9 10
10 11 12 13 14 15 16 17 18 19 20
5 do循环
do需要和while或者until配合使用,比如
do{
}while();
或者是
do{
}until();
do结构中的语句一定会先执行一遍,然后才会判断条件
6 last,next,redo
这三种结构是用来打断循环结构的正常运行的,前两种就和c语言中的break,continue一样,后一种是perl特有的
#!/usr/bin/perl -w
use strict;
my $a=0;
for($a=0;$a<10;$a++)
{
last if($a == 5);
print "$a ";
}
print "\n";
#next
#!/usr/bin/perl -w
use strict;
my $a=0;
for($a=0;$a<10;$a++)
{
next if($a == 5);
print "$a ";
}
print "\n";
#redo
#!/usr/bin/perl -w
use strict;
my $a=0;
for($a=0;$a<10;$a++)
{
print "$a ";
#redo if($a == 8);
}
结果如下:
0 1 2 3 4
0 1 2 3 4 6 7 8 9
0 1 2 3 4 5 6 7 8 9
嘿嘿,你可以把最后一个代码中的redo if($a == 8)加上
看看会发生什么~哈哈,反正我的这个程序是死了