in reply to working with remote log files

I noticed that you are approaching this sequentially. That is process the 100 servers one server at a time.

One way of speeding it would be do have a parallel processes. Thus if you have 10 parallel processes, each only has to process 10 servers. Threads are probably more efficient than processes, but I do not know whether you can use threads in perl

Of course you have to realize that this adds a whole new level of complexity as you have to deal with multi-process synchronization issues. In other words, when you need to write to your error file it has to be properly locked, etc.

Just an architecture suggestion.