注册/登录

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循环是一种更
好的方法,因为它一次处理一行输入。

【编辑推荐】

  • 使用 Perl 增强 Twitter 实用性
  • 深入解析Perl内部函数的使用
  • Perl语言中的五大变量类型
  • 浅析Perl正则表达式在PHP的实现
  • Python编程语言比perl在实际应用中优点所在
  • 责任编辑:佚名 csdn.net
    点赞
    收藏