My advice is to avoid using threads, especially as you are new to Perl.

It is unlikely that processing the logs in threads will be much faster than processing the logs from a single threaded program launched as multiple instances. Most of the time of your programm will likely be spent on disk IO anyway.

I recommend writing the program that processes a single log file first. Then I would launch that single program through runN, which will process all the files in parallel with it.

As for logging, I recommend writing the output to a separate log file for every input file, and merging these log files after all files have been processed.