in reply to Archive-Zip memory problems

Have you verified it's actually processing more than one file? You could step through the code with the perl debugger to determine if and where a memory leak is occuring.

Or you could simplify your program and wrap it in a find statement as a work-around to process individual files

find . -name '*.zip' -exec perl archive.pl {} \;