This is not a memory leak. The reason perl allocates memory during printing is that it converts all the 0 values in the hashes to strings and stores these. This upgrades your SvIV structs containing 0 into the much larger SvPV structs containing both 0 and "0" (see [1]). --Gisle [1] http://search.cpan.org/src/GAAS/illguts-0.09/index.html#sviv