Unfortunately, Win32 only knows how to pass along command lines, not preparsed command-line arguments so multi-argument system doesn't do any good (it could be made to emulate that better, but that is another story). So you just have to put double quotes around any arguments that are paths that might include spaces and hope that the program being invoked follows this general practice and deals with such. If you are indeed throwing bash into the mix, then things probably get more complicated. I'd avoid that.
Alternately you can convert to the "short" path name which would not contain any spaces:
use Win32;
my $short= Win32::GetShortPathName($long);
-
tye
(but my friends call me "Tye") |