我的 Perl 脚本有我不理解的奇怪行为。我正在处理存储为哈希数组的大型结构,该数组在处理时会增长。问题是当我将结构存储在硬盘上时,它的最大容量约为 8mb,但在处理时它需要大约 130mb 的内存。为什么差别这么大?
处理的主要流程如下所示:
while(...)
{
my %new_el = %{Storable::dclone \%some_el};
# ...
# change a few things in new_el
# ...
push @$elements_ref, \%new_el;
}