while循环语法:
while(some_expression){ statment_1; statment_2; .... }程序执行到while语句时,首先检查控制语句(some_expression),若其值为真,就会执行循环体一次,如此反复不停的执行,知道控制语句的值为假,则停止while循环
示例:
#!/usr/bin/perl -w $number=10; while($number > 0){ print ("number is $number\n"); --$number; }
until( some_expression ){ statment_1; statment_2; ... }
#!/usr/bin/perl -w $number=10; until($number <= 0){ print ("number is $number\n"); --$number; }
do while 或 do until 循环 至少执行一次循环体,然后才检查条件。
do { statment_1; statment_2; ... }while(some_expression);do while 循环,条件表达式为假则循环结束
do { statment_1; statment_2; ... }until(some_expression);do until 循环,条件表达式为真则循环结束
for循环
for语句主要用于确定次数的循环,语法如下:
for(其实语句;测试语句;步进语句){ statment_1; statment_2; .... }系统会首先执行起始语句。一般可以在这里为变量赋值,不过这不是硬性规定,甚至可以什么都不写,但是分号还是要写。测试语句的值若为真,循环体被执行一次,接着执行步进语句。
foreach循环可以接收一个列表,将其中的数据作为参数一次一个赋给某标量变量,并执行每一条有效赋值的代码块语句。其语法如下:
foreach $i (@some_list){ statment_1; statment_2; .... }示例:
#!/usr/bin/perl -w foreach (1..10){ print " "; print; } print "\n";foreach所用的列表跨越式任何值为列表的语句,不一定要数组变量,甚至可以不写标量变量,让perl使用默认变量 $_ 。如不指定任何值给print ,就会打印出$_ 的内容。
如果在应该使用列表值的地方使用了真正的变量,取代返回列表的函数,那么perl会在循环中把用到的变量视为传入的变量的别名,而不仅仅是拷贝值而已。这样,如果在循环中改变了该标量变量,列表里的对应元素也会被相应改变。例如:
#!/usr/bin/perl -w @x=(1..10); foreach $num (@x){ $num += 10; } print "@x"; print "\n";foreach执行完后,数组@x 的值改变了。