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

PHP
让我们来编写一些PHP实用的脚本
七种缓存使用武器 为网站应用和访问加速
动态网页PHP中引用&的使用注意事项
在PHP中全面阻止SQL注入式攻击
PHP自带可以代替echo调试的unit函数
小结:PHP动态网页程序优化及高效提速问题
php对特殊语句查询结果进行数组排序
实例:用PHP技术解决网站URL格式过长的问题
小结:PHP动态网页程序两个有用的小技巧
动态网页中直接不让访问PHP程序文件
网页实例:详细介绍用PHP来编写网页记数器
菜鸟学习:动态网页PHP基础学习笔记
利用Apache实现禁止图片盗链
PHP编程中常用的三则技巧
PHP制作的网站意见在线反馈表
大型Web需求解决方案 PHP定位突出
PHP实例:精确到每一秒钟的在线人数显示代码
实用:动态网页制作技术PHP的十个应用技巧
常见php页面漏洞分析及相关问题解决
PHP和MYSQL制作动态网站开发经验之谈

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 44 ::
收藏到网摘: 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,并以某种方式进行处理(在本例中简单在终端打印)。循环继续进行,直到所有的数组元