Rather than call a batch file form perl why don't you try reimplenting the batch files's functions in Perl. You can do just about anything in Perl that you can with the batch file even if you have to resort to the
system call.
This will let you do logging as well as catching errors. If fact you will be able to capture step by step status and respond to them in different way. It will also be easier to clean up the output for use in a log file.