当前位置: 首页 > 图文教程 > 网络编程 > PHP > 如何利用程序循环来控制Perl脚本流程

PHP
php面向对象全攻略 (十五) 多态的应用
php面向对象全攻略 (十六) 对象的串行化
php面向对象全攻略 (十七) 自动加载类
PHP parse_url 一个好用的函数
PHP 字符串分割和比较
全世界最小的php网页木马一枚 附PHP木马的防范方法
PHP 日期加减的类,很不错
PHP 日期时间函数的高级应用技巧
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Ha0k 0.3 PHP 网页木马修改版
PHP iconv 函数转gb2312的bug解决方法
关于页面优化和伪静态
使用zend studio for eclipse不能激活代码提示功能的解决办法
PHP 身份验证方面的函数
基于OpenCV的PHP图像人脸识别技术
用mysql触发器自动更新memcache的实现代码
php 数学运算验证码实现代码
PHP网站开发方案实例
PHP教程:挖掘细节提升网站性能
搜索引擎技术核心揭密(PHP)

PHP 中的 如何利用程序循环来控制Perl脚本流程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 125 ::
收藏到网摘: n/a

了解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个数列元素,这时条件表达式的结果为假,循环被终止。

也可以用for()循环重写阶乘的例子,如列表F所示:

列表F

#!/usr/bin/perl

# define variables

$fact = 1;

$num = 5;

# calculate and print the factorial

for ($x=5; $x>1; $x--) {

$fact = $fact * $x;

}

print $fact;

这个稍有不同,因为每次循环计数器变量不是递增,而是递减。这样就可以由5倒数至1,这时条件表达式为假,循环终止。$fact的结果值为5的阶乘。

Foreach循环
Foreach循环是一个有些特殊的循环——只有Perl的数组变量能够使用这个循环。该循环可以方便地重复数组的每一个元素,依次对它们进行处理。列表G是一个例子:

列表G

#!/usr/bin/perl

# define number array

@nums = (1..18);

# iterate through array elements

foreach $n (@nums) {

print "$n ";

}

这里,foreach()循环结构被提交给一个数组变量,在这个例子中它包含18个元素。循环每重复一次,当前选中的元素被分配给临时变量$n,并以某种方式进行处理(在本例中简单在终端打印)。循环继续进行,直到所有的数组元