Ahh, thanks Stevie-O. This does seem to be a problem with cmd.exe - I get the same results when I use it directly. Unfortunately, ^" doesn't seem to work correctly, nor does "". Very frustrating. Is there any way to compile Perl on my Windows environment to use the Cygwin bash shell instead?
That looks interesting, ZlR. I'll check out those modules and see if I can easily change my program to use them. I wasn't really looking to redirect the output to a filehandle, though -- just capture it in a variable. I'm calling an external program to set the music tags on MP4 files that I'm processing, so I wanted to capture its error messages in case the program failed. This problem arose for some song names and artists that contained a " (usually 12" mix or something similar).