perl程序设计(八)
2008-04-09 03:59:17来源:互联网 阅读 ()
任何一种语言没有循环就是不完整的。Perl也是如此,它可以用
while, do...while, for, until, foreach来实现。
循环中还可以用last,next,redo等操作符进行控制。
指令:
while 当..
语法:
while(判别运算式) {
程序叙述区块;
}
上个语法在Perl中也可以写成: 程序叙述区块while(判别运算式);
范例一:
while($<=10)
{
$sum =$i;
$i ;
}
print"$sum\n"; #此时$sum =55;
范例二:
$filename="/path/cgi.txt";
open(FILE,"$filename")||die "Cannot open $filename\n";
#可以把<FILE>视为打开文件某一行的数据
while($line=<FILE>)
{
print "$line";
}
close(FILE);
就会把cgi.txt这个文件的内容显示出来。
而这个范例可以把它改写成:
$filename="/path/cgi.txt";
open(FILE,"$filename")||die "Cannot open $ filename\n";
print "$line"while($line=<FILE>);
close (FILE);
在这个范例中是把$filename文件内的数据一行一行的指派给$line这
个纯量变量,再把$line显示出来.如果没有将<FILE>指派给一个纯量变量
的话,则会有一内定的输入变量$_被<FILE>所指派.因为$_是一个内定的变
量,所以如果使用print函数的时候没有加上要输出数据的话,就会把$_的
数据print出来.所以这个范例也可以改写成:
$filename="/path/cgi.txt";
open(FILE,"$filename")Ⅱdie"Cannot open $ filename\n";
while(<FILE>)
{
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 while 直到...才
语法:
do{
程序叙述区块;
}until (判别运算式);
范例:
do{
$sum =$i;
$i ;
}until($i>10);
print "$sum\n"; #此时$sum=55;
指令:
for 循环陈述
语法一:
for (初始化运算式;判别运算式;循环过程运算式)
{
程序叙述区块;
}
范例一:
$sum=0;
for($i=1;$i<=10;$i )
{
$sum =$i;
}
print "$sum\n"; #此时$sum=55;
范例二:
@array=(3,6,9);
$number=@array; #把数组@array的元素个数指派给$number
#此时$number=3;
for($i=0;$inumber;$i )
{
$sum =$array[$i]; #把数组@array元素的值全部加起来
}
print"$sum\n"; #此时$sum=18;
语法二:
for $ variable(@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=18;
也可以定成:
@array=(3,6,9);
foreach(@array)
{
$sum =$_;
}
print "$sum\n"; #此时$sum=18;
范例二:
%FORM=("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","value","TEM");
@array=(sort keys%FORM);
foreach $pair(@array)
{
print "$pair is $FORM{pair}\n";
}
指令:
last 退出循环陈述
语法:
last
范例:
for($i=1;$i<=10;$i )
{
last if ($i==5); #如果$i等于5的话就退出for循环
print"$i\n";
}
会把1到4之间的数值显示出来.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:关于shellcode的编写
下一篇:perl程序设计(十五)
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash