Thanks, everyone.
I think what I am going to do is split this script in 2, the threaded script will only launch the scans, and I'll have another script, on another box monitor the directory where the temp files are placed, process them, import them, and delete them.
Hopefully the memory leak BrowserUk describe won't get bad enough to kill my Perl process. Otherwise, expect another long winded post from me about forking or somesuch. :)