in reply to win32/unix compatible script

Your problem is not a Perl problem; it's a shell (CMD.EXE or COMMAND.COM) problem. Just like almost any DOS/NT program that would be passed the same argument, you have to quote filenames that contain spaces. You'll notice that your windows file type associations generally have the argument given as "%1" ; this is for just this reason.

Once you've actually got the filename, nothing (neither Perl nor NT) cares that there may be embedded spaces in the filenames.