Nicht unbedingt. Irgendwo habe ich mal aufgeschnappt, dass Perl einmal reservierten Speicher nicht wieder frei gibt, sondern wieder verwendet. Ist die verarbeitete Datenmenge immer gleich groß oder schwankt das schonmal?
Versuche doch mal diese Module Devel::Size und dergleichen zu verwenden um genau festzulegen, welche Variable genau wann viel SPeicher frisst oder wann Speicher behält, obwohl du ihn "freigegeben" haben möchtest.