Perl foreach用法指南

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

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

Perl foreach用法

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

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

Perl中while和Perl foreach的区别

  1. while(defined($_=<STDIN>))  
  2. {  
  3. print“Isaw$_”;  


在列表context中使用行输入操作时,则会将所有的行(剩下的)当作一个列表,而每一行作为列表的一个元素:
 

  1. Perl foreach(<STDIN>)  
  2. {  
  3. print“Isaw$_”;  

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

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

【编辑推荐】

  1. Perl foreach用法解析
  2. Perl foreach控制结构中的控制变量
  3. 实例解析Perl多进程技术的应用
  4. 学习笔记 Perl split函数用法指导
  5. Perl多进程及其和多线程的关系解析

 

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

2010-07-26 17:09:00

Perl模块

2010-07-21 10:10:50

Perl split函

2010-07-23 15:51:27

Perl开发工具

2010-07-19 15:25:39

Perl标量转换函数

2010-07-21 09:38:51

2010-07-20 14:52:51

Perl语法

2010-07-21 14:25:24

Perl格式化输出

2010-07-16 14:05:58

Perl数组

2010-07-19 10:11:58

Perl流程控制语句

2010-07-21 13:35:22

Perl模式匹配

2013-02-18 13:44:22

CSSSASSWeb

2010-07-13 13:49:43

Perl foreac

2010-08-12 15:20:49

Flex Builde

2010-08-09 12:42:16

Flex module

2010-07-26 14:54:07

Perlsplit函数

2010-07-30 10:13:38

Flex控件

2010-08-04 14:07:59

Flex事件机制

2010-08-16 15:11:02

DIV

2010-07-28 14:59:26

Flex字符串

2010-08-13 11:34:54

Flex自定义事件
点赞
收藏

51CTO技术栈公众号