How are you measuring the memory footprint? If you do it from the perspective of the OS: I don't think perl returns freed memory back to the OS for the running time of the program. I thought that this is a general thing (not just perl), but this is all hearsay so perhaps someone can clarify (rather than get carried away by the exact definition of 'garbage collection').