Mi código es el siguiente: el uso de memoriaCómo liberar memoria en Perl?
my %var;
my %var_new={};
while(1){
while(my ($k,$v)=each %var){
&a_sub($v);
}
%var={}; # A
map { $var{$_}=$var_new{$_}; } keys %var_new;
%var_new={}; # B
}
sub a_sub { #....} # will fill %var_new
Mi programa de sube y sube.
Parece Perl no liberar memoria en las líneas A y B.
¿Cómo puedo realizar manualmente Perl para liberar la memoria utilizada %var
y %var_new
?
¿Por qué asigna un hashref a un hash? – Quentin
'use strict; usa advertencias; use diagnostics' (este último solo durante el desarrollo) – Quentin
A pesar de los errores en el código que ha publicado, no hay ninguna razón para que el código que publique use cada vez más memoria. – ikegami