其实楼主这个问题
应该可以这么转换:
Use List::MoreUtils;
@content = apply {$_ =~ s/<(.+?)>//gi; $_->{content}} @$topics
或者先把原来的数组复制个副本再用map做就可以了。一般来说用for产生新数组效率不如map,因为每个循环中都使用push等手段,需要每次都请求分配内存。楼主这个新数组元素数目是未知的,无法预先 请求预支相应数目的内存。 详见Perl Best Practice page 110。 On 10月19日, 上午11时35分, liseen <[email protected]> wrote: > 呵呵, best practice 里面有段专门讨论这个。 > > 2009/10/19 Tiger Peng <[email protected]> > > > > > 为什么不benchmark一下? > > > 2009/10/18 Michael Zeng <[email protected]>: > > > map/grep 只是看得舒服, 效率和for 一样的 > > > > 对于数组自身的操作(不赋指给另一个新的数组),for 要比 map/grep 效率高 > > > > 2009/10/18 imxae <[email protected]> > > > >> map的循环不比foreach效率高吗? > > > >> -- > > >> Yours Sincerely > > >> Zeng Hong- 隐藏被引用文字 - > > - 显示引用的文字 - --~--~---------~--~----~------------~-------~--~----~ 您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
