|
指令:while当.. 语法:while(判别运算式){ 程序叙述区块; } 上个语法在Perl中也可以写成:
程序叙述区块while(判别运算式); 范例一: while($i<=10){ $sum+=$i; $i++;
} print"$sum\n"; #此时$sum=55; 范例二: $filename="/path/cgi.txt";
open(FILE,"$filename")||die"Can not open $filename\n"; #可以把视为在打开文件中某一行的数据
while($line=){ print"$line"; } close(FILE); 就会把cgi.txt这个文件的内容显示出来。而这个范例可以把它改写成:
$filename="/path/cgi.txt"; open(FILE'"$filename")||die"Can not open
$filename\n"; print"$line"while($line=); close(FILE); 在这个范例中是把$filemme文件内的数据一行一行指派给$line这个纯量变量,再
把$line显示出来。如 果没有将指派给一个纯量变量的话,则会有一内定的 输入变量$_被所指派。因为$_是一个内定
的变量,所以如果使用print函数 的时候没有加上要输出数据的话,就会把$_的数据print出来。所以这个范例 也可 以改写成: $filename="/path/cgi.txt";
open(FILE,"$filename")||die"Can not open $filename\n"; while(){
Print; } close(FILE); 指令:do while 当.. 语法:do{ 程序叙述区块, }while(判别运算式);
在while和do while循环中最大的不同是在do while循环中,程序叙述区块至少会 被执行一次。 范例: do{ $sum+=$i;
$i++; }while($i<=10); print"$sum\n"; #此时$sum=55, 指令:until直到...才
语法:until(判别运算式){ 程序叙述区块; } 上个语法在Perl中也可以写成: 程序叙述区块 until
(判别运算式); 范例: until($i>10){ $sum+=$i; $i++; } .. print"$sum\n";#此时$sum=55;
指令:do until 直到...才 语法:do{ 程序叙述区块; }until(判别运算式); 范例: do{ $sum+=$i;
$i++; }until($i>l0); ; print"$sum\n";#此时$sum=55; 指令:for循环陈述
语法一:for(初始化运算式,判别运算式;循环过程运算式){ 程序叙述区块; } 范例一: $sum=0; for($i=l;$i<$i++){
$sum+=$i; print"$sum\n"; #此时$sum=55; 范例二: @array=(3,6,9);
$number=@array: #把数组@array的元素个数指派给$number #此时$number=3;
for($i=0;$ibr> $sum+=$array[$i]:#把数组@array元素的值全部加起来
}
语法二:for$variab1e(@array){
程序叙述区块;
}
在Perl语言中的for循环陈述还可以使用这个语法,和循环陈述foreach的用法一 样。如果把$variable变 量省略的话,就会将数组@array
的元素一个一个指定给 $_这个变量,这是比较精简的写法。 范例: @array=(3,6,9);
for$int(@array){
$sum+=$int;
} print"$sum\n";#此时$sum=18;
也可以写成:
@array=(3,6,9);
for(@array){ $sum+=$_; } print"$sum\n";#此时$sum=18; 指令:foreach
循环陈述 语法:foreach $variable(@array)( 程式叙述区块; } 如果把$variable变量省略的话,就会将数组@array的元素一一指定给$_这个内定
的输出变量。 范例一: @array=(3,6,9); foreach $int(@array){ $sum+=$int;
Print"$sum\n";#此时$sum=l8; 也可以写成: @array=(3,6,9); foreach(@array){
$sum+=$_; } print"$sum\n";#此时$sum=18; 范例二: %F0RM=("name"'"NCTU","value","TEM");
foreach $pair(sort keys%FORM){ print"$pair is $FORM{$pair}\n";
} 这个范例在CGI程序写作中常常会用到。先用keys这个函数来求出关联数组中全部 的key,再用sort这个 函数把全部的key由小到大排序,最后再把关联数组中的key和
所对应的值(value)一一显示出。而以上这个程 序也可写成: %FORM=("name"'"NCTU","vaiue","TEM");
@array=(sortkeys%F0RM); foreach $pair(@array){ print"$pairis$F0RM{$pair}\n";
} 指令:last 退出循环陈述 语法:last 范例: for($i=1;$i>=l0;$i++){ last
if ($i==5); #如果$i等于5的话就退出for循环 print"$i\n"; } 会把l到4之间的数值显示出来。
指令:next到循环的下一个陈述 语法:next 范例: for($i=l;$i<=10;$i++){ #如果是2的倍数的话,就到循环的下一个陈述
next if (($i%2)==0) print"$i是一个奇数!\n"; } 会把1到10之间的奇数显示出来。
|