Beefy Boxes and Bandwidth Generously Provided by pair Networks httptech
P is for Practical
 
PerlMonks  

Re: Failure of catfile on Windows 7

by furry_marmot (Pilgrim)
on Mar 01, 2011 at 18:18 UTC ( #890792=note: print w/ replies, xml ) Need Help??


in reply to Failure of catfile on Windows 7

In Windows, \\foo\go\do would generally be seen as a UNC path, where foo is the server name. Is foo a server name? Or is it a directory at root level?

Also, have you tried File::Spec::Win32::canonpath and File::Spec::Win32::catpath?

--marmot


Comment on Re: Failure of catfile on Windows 7
Re^2: Failure of catfile on Windows 7
by ikegami (Pope) on Mar 01, 2011 at 18:50 UTC
    File::Spec has no way to know that «\foo\go» on the current drive maps to «\» on share «\\foo\go», so I don't see how you think canonpath and catpath can help.

      Well, you never know when you've got incomplete information (such as what version of File::Spec the OP is using). Based on the code he provided, I can't imagine why the code would change only the first part of the path to "\\". So I asked.

      I'm looking at the code the OP ref'd. It's in a sub called _canon_cat that is referenced constantly throughout the module. It spends a lot of time trying to figure out if the path starts with a drive letter, a UNC, or just a root directory. Then lots of code trying to work out every variation of slashes and dots. But I don't think the problem is there.

      Anyway, I've been playing with version 3.33, the current version, on Vista and I'm not seeing the OP's results. If he can live with not concatenating an empty string to the file, maybe that will take care of it.

      --marmot

        Well, you never know when you've got incomplete information

        There's no information missing. The source is on CPAN. Feel free to check it. You'll find the same thing.

        I can't imagine why the code would change only the first part of the path to "\\". So I asked

        Probably because you think something was changed. It's what you get when you place a path seperator between '' and '/foo/go/do'. That's fine on unix, but not on Windows.

        Anyway, I've been playing with version 3.33, the current version, on Vista and I'm not seeing the OP's results.

        What did you get, then?

        I think I used 3.31 — I'll confirm when I can — and I got the correct but undesired result (single slash). ( Confirmed )

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://890792]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2014-04-16 05:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (414 votes), past polls