2009年7月12日星期日

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

多谢您分享宝贵经验,对菜鸟我超级宝贵,再谢。

2009/7/5 agentzh <agentzh@gmail.com>
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





--
…………………………………………
              Ericzhao

Email:   Ericzhao82@gmail.com
MSN:    Ericzhao_82@hotmail.com
BLOG:   share82.freebsder.info

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

-~----------~----~----~----~------~----~------~--~---

没有评论: