The 'brute force' solution to problems with long windows names is, as your suggest, to use their short alias. You can learn the short name of a file (or directory) by using the /X option of the dir command.
There are other options, but I usually prefer this.
Bill
Comment on Re: Executing perl program from another perl program and capturing the output
:) Seeing how the OPs issue is not howing how to call the shell and stuff, using the shell to discover shortname is going to be hard :) Win32::GetShortPathName otoh is much easier