Hi,
I limited to just the trailing backslash because I was confident that that
would work in all cases I know of.
I'm not sure if '//server/share' would work nor am I entirely confident I've
thought of all the ways a path can be constructed in the Windows/Samba world. I
am as confident as one can be that just changing the trailing backslash would
work.
I took a look at Module::ScanDeps::DataFeed which is another module where the
trailing backslash issue is addressed. That module escapes the trailing slash
with
join(',', map("\n\t'$_'", map {s/\\$/\\\\/; $_} @inc));
I have no preference between the two methods, but as the two modules are often
used together, would it be a good idea to take a common approach in both
modules?
I will prepare/test patch that escapes the trailing backslash in Base.pm and
post + apply.
Regards
Mark
Steffen Mueller wrote:
> Hi Mark,
>
> Mark Dootson schrieb:
>> Is it possible to have full UNC paths in @INC?
>> For this and other cases the attached patch works too.
>
> For those not in the know: UNC paths are mostly the \\Server\Share\Dir
> syntax commonly seen in Windows/Samba shares. To be entirely honest, I
> had to look that up. :)
>
> I never really thought about this. I would guess such paths break all
> kinds of regular expressions in various places. Not just in PAR and its
> companion modules but perhaps also in perl itself, File::Spec, etc.
>
> But it's something to keep in mind. Better to be safe than sorry.
>
> About the code:
> Why s/\\+$/\//? Is replacing just a trailing backslash with a slash a
> good idea? s/\\/\/g would have done, too, wouldn't it? (perl doesn't
> care about / vs \ in paths.) Or removing any trailing (back-)slash in
> the first place: s/(?:\\|\/)$//?
>
> I think your patch isn't clumsy at all. "elegant", "one-line",
> "readable", pick two. :)
>
> I assume you did the replacement of just one path separator in order to
> change the string as little as possible, after all c:\foo\ is
> semantically more similar to c:\foo/ than to c:\foo.
>
> Can you apply your patch yourself?
>
> Steffen
>