2009年7月4日星期六

[PerlChina] Re: 请教两个foreach嵌套的问题,谢谢

On 6/30/09, Ericzhao82 <ericzhao82@gmail.com> wrote:
> 能说下原因吗?谢谢
>
> 2009/6/30 <redicaps@gmail.com>
>
>> 少用 foreach (<FH>)这种写法

foreach (<FH>) { ... }

等价于:

@lines = <FH>;
foreach (@lines) { ... }

即先一口气把文件中的每一行都读到内存里来(即 @lines 数组里),再一行一行地处理。这种方式对于较大的文件,内存使用效率是很低的。我们多这么写:

while (<FH>) { ... }

其实就是

while (my $line = <FH>) { ... }

读一行,处理一行,扔一行,然后再读下一行。。。如此这般,内存使用效率很高 :)

>> 用while

*nod*

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

没有评论: