in reply to Re: Opening a text file in its native application
in thread Opening a text file in its native application

hi,

I try the start command and opening a file and it works for me too, but in my code, I have a button that calls that sub and that might be the problem??

Thanks,

CL

  • Comment on Re^2: Opening a text file in its native application

Replies are listed 'Best First'.
Re^3: Opening a text file in its native application
by BrowserUk (Patriarch) on Jan 16, 2006 at 07:09 UTC

    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

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.