Not only CMD.EXE, but Windows as a whole. Launching executables using a system call is bound to the filename extension. Nevertheless, if Perl is indeed going through the shell in this case, then of course that offers a potential solution which did work in your case.
Makeshifts last the longest.
Comment on Re^3: Is it my ENV within my system call or the shell itself?