I faced a similar issue recently and my conclusion was that there is some bug in perl handling of pipes that triggers when it is called as a Windows application (instead of a console one).
My advise would be to redirect the output of the external program to a external file and to read it afterwards from perl.
Comment on Re: Reading output of external program without Shell