in reply to Re: ADD PATH TO @INC
in thread ADD PATH TO @INC

print "C:\ads\lib"; prints C:*beep*dsib BTW.

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
Re: (tye)Re: ADD PATH TO @INC
by dserodio (Novice) on Jun 19, 2001 at 01:06 UTC
    You need to escape the backslash with another backslash:

    print "C:\\ads\\lib";

        Perl doesn't do much automatic convert of / to \ on Win32. I think it is actually more common that some modules convert \ to / when on Win32 so that the rest of their code doesn't have to deal with \ directory separators.

        The fact is that Win32 allows / as a directory separator in almost all places. The few exceptions I have found include

        • Many programs that use / for command-line options (such as most programs from Microsoft) won't let you use / as a directory separator for file names on their command line.
        • The standard "open file dialog" controls don't allow / as a directory separator.
        • The DefineDosDevice() API call doesn't allow the use of / in the definition of a "raw target path".
        So, in Perl on Win32, you will only very rarely run into problem using / as a directory separator except if you try to use it on some other program's command line.

        Unfortunately, there are also some fairly rare cases where using \ as a directory separator will cause you problems in Perl, so there isn't just one simple solution.

                - tye (but my friends call me "Tye")

        Yes and no. Your code, print "C:/ads/lib"; will print C:/ads/lib. But Perl on Win32 will correctly understand / as a path separator (e.g., open FILE, 'C:/ads/lib/file.txt';).