处理长列表
如果你已经在内存中有一个列表,那么处理它的简单且通常足够的方法就是一个简单的 foreach
循环:
foreach my $item (@items) {
...
}
这很好,例如对于在 $item
上进行一些处理然后将其写入文件而不保留数据的常见情况。但是,如果你从项目中构建其他数据结构,则 while
循环可以提高内存效率:
my @result;
while(@items) {
my $item = shift @items;
push @result, process_item($item);
}
除非对 $item
的引用直接在结果列表中结束,否则当你进入下一个循环迭代时,可以释放从 @items
数组移出的项目并由解释器重用内存。