jupe has asked for the wisdom of the Perl Monks concerning the following question:

I would like to be able to open a file on a remote Win2000 machine via UNC. Here is the scenario. I have a two Win2000 machines with the same login credentials on both (no domain). When I try a simple open(FILE, '\\machine\share\file') it comes back with Can't open file. This has to be an easy answer, but I can't figure it out. Thanks in advance for the help! btw, I really want to avoid mapping a drive.

Replies are listed 'Best First'.
Re: How do I open a file via UNC
by Juerd (Abbot) on Apr 01, 2002 at 20:45 UTC
    A double backslash evaluates to a single backslash, even with single quotes. Try "\\\\machine\\share\\file" or '\\\\machine\share\file'.

    I don't know if Perl's smart enough to convert slashes to backslashes, but if so, you can just use '//machine/share/file'. (I haven't used Perl under Win32 system)
Answer: How do I open a file via UNC
by Anonymous Monk on May 19, 2002 at 14:29 UTC

    I have found that it is sometimes(though not always) necessary to make a call to AddConnection to add a network connection to the UNC before I can open the file using a UNC. You can use AddConnection to add a connection without mapping a drive by not supplying a local device name. This is the work around that I have settled on and it does work although it requires a few more lines of code and final call to CancelConnection.

    I have never put the time into figuring out why AddConnection is sometimes required: I have just found from experience that it sometimes is - even when using domain accounts or local accounts on two machines that use the same login credentials and identical access rights on the target directory and file.

    I would be interested in the answer to this if anybody does know.

Re: How do I open a file via UNC
by jupe (Beadle) on Apr 02, 2002 at 00:00 UTC
    I have tried both of those. I don't know if it is my machines or if that just isn't a valid way of specifying a file. Has anyone gotten it to work?