in reply to Re^2: Opening a text file in its native application
in thread Opening a text file in its native application
sk hit the nail on the head. The start command appears to have problems with paths that contain spaces, even if you quote them. However, I have found that it you quote the individual element of the path that contains the space, it then works.
So, for the path c:\program files\junk.txt, if you issue the command
system 'start', '"c:\program files\junk.txt"';
it fails, but if you issue the command
system 'start', 'C:\"program files"\junk.txt';
It succeeds. So you would need to modify your quoting mechanism to be something like this (untested):
sub logfile{ my $file = "$gGui{complogpath}/$gGui{complog}.txt"; my @args = ("start",$file); for (@args) { s[ ( [\\/] ) ## A path delimiter ( [^\\/]* \s [\\/]* ) ## Two or more non delimiters ## including a space ( [\\/] ) ## Another delimiter ][$1"$2"$3]gx; ## Quote the path element }; system(@args) == 0 or warn "Couldn't launch '$file' : $!/$?/$^E"; }#logfile
|
|---|