Perl foreach用法解析

开发 架构
Perl foreach的用法你是否熟悉,这里向大家简单介绍一下,Perl foreach从列表(数组)的第一个元素一直循环执行到最后一个元素,一次迭代一个。

本文和大家重点讨论一下Perl foreach命令的用法,Perl  foreach循环中控制变量的值会被Perl自动保存和恢复。当循环进行时,是没有办法改变其值的。循环结束时,变量的值会回到循环开始前,如果没有值则为undef。

Perl foreach用法

Perl foreach从列表(数组)的***个元素一直循环执行到***一个元素,一次迭代一个。控制变量(本例中为$rock)每一次迭代从列表中取出一个新值。***次为“bedrock”,第三次为“lava”。控制变量不是这些列表元素中的一个拷贝而是这些元素本身。也就是说,如果在循环中修改这个变量,那原始列表中的元素也会被修改,如下面代码段所显示。这条性质是有用的,但是,如果不清楚,可能对其结果感到吃惊。

当循环结束时$rock的值为多少呢?其值同循环开始之前相同。Perl foreach循环中控制变量的值会被Perl自动保存和恢复。当循环进行时,是没有办法改变其值的。循环结束时,变量的值会回到循环开始前,如果没有值则为undef。这意味着如果有一个变量和控制变量有相同的名字:“$rock”,不用担心会混淆它们。

perl中while和Perl Perl foreach的区别

while(defined($_=<STDIN>))
{
print“Isaw$_”;
}
在列表context中使用行输入操作时,则会将所有的行(剩下的)当作一个列表,而每一行作为列表的一个元素:
Perl foreach(<STDIN>)
{
print“Isaw$_”;
}

同样,行输入操作和Perl的默认变量$_没有必然的联系。在上例中,Perl foreach默认的控制变量为$_。因此,此循环将每一行
赋给$_。

上面的看起来相似:好像有理由认为它们的行为也是相似的,不是吗?
它们在底层是很不相同的。在while循环中,Perl读入一行,将它赋给变量,然后进入循环。再回到开头,读入下一行。但
在Perl foreach循环中,由于行输入操作在列表的context中使用,因为Perl foreach需要一个列表作为其参数。因此,它在循环执行
前会将所有的输入读入。这种区别在读入一个400MB的web服务器的log文件时非常明显。通常使用while循环是一种更
好的方法,因为它一次处理一行输入。

【编辑推荐】

  1. 使用 Perl 增强 Twitter 实用性
  2. 深入解析Perl内部函数的使用
  3. Perl语言中的五大变量类型
  4. 浅析Perl正则表达式在PHP的实现
  5. Python编程语言比perl在实际应用中优点所在

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-26 15:27:50

Perl foreac

2010-07-14 15:32:21

Perl转义字符

2010-07-16 13:10:36

Perl哈希表

2010-07-20 09:45:04

Perl继承

2010-07-15 10:22:23

Perl控制结构

2010-07-19 14:13:41

Perl函数

2010-07-16 08:47:53

Perl if语句

2010-07-16 16:56:01

Perl构造函数

2010-07-21 13:59:59

Perl引用

2010-07-20 15:02:20

Perl数组

2010-07-26 15:17:51

Perl解析XML文件

2010-07-14 12:39:30

Prel字符串

2010-07-15 10:47:22

Perl命令行

2010-07-15 15:54:10

Perl守护进程

2010-07-13 09:23:00

Perl变量

2010-07-19 14:37:01

Perl进程启动函数

2010-07-16 13:45:41

Perl引用

2010-07-19 14:20:57

Perl函数

2010-07-13 15:34:09

Perl语言

2010-07-20 15:54:40

Perl简单变量
点赞
收藏

51CTO技术栈公众号