On Tue, Jan 27, 2004 at 12:42:12AM +0800, Autrijus Tang wrote: > > > - The %2E is perhaps best left as a "." when not on VMS and the > > filename begins with a non-".". > > - This would make the paths easier to read and work with when > > spelunking around to see what's what. > > I have reservations on that, since PAR names may well contain unsafe > characters like "http://". Maybe the standard URL escaping rule should > be used, where '.' is a safe char.
All I'm proposing here is to not escape safe chars like '.' (%2E). I well understand the need for escapism in general here :). > > - I'm pretending that PAR files only contain lib/...-like > > file trees and that any collisions are ok because they are > > collisions with or without this simplification due to > > normal first-match @INC processing. > > That is an incorrect assumption -- see above for multiarch and recursive > PAR setups. So we will always need a coderef hook to set things up, > and intermediate directories to distinguish the sources. Would't the directory named with the arch name prevent collisions, just like in real multi-arch perl lib dirs? Or are people building different architectures in to the same pathnames and using PAR options to only unpack the appropriate ones? > > > Also -- I dislike needless pre-extraction. It penalize people using > > > many PAR files, some of which may be remote. I can see that files other > > > than .pm and .dll needs to be pre-extracted, though. Would be good > > > enough for you? > > > > I (did) need .pms, because they have POD I want Pod::Usage to find. > > Oh, you need .pm files prior to require() them? I think that is a > relatively unusual demand, but I'm willing to be convinced otherwise. Any POD parsing program may need that sort of thing, for instance to generate a set of documentation that includes libs you haven't require()ed. VCP used to scan for .pm and .pod files using File::Find on grep( -d, map "$_/VCP/Filter", @INC ) to see what HTML to generate. Additionally, VCP uses @INC scanning to implement plugability. By doing the equivalent of: grep -f, map glob "$_/VCP/Filter/*.pm", @INC; it can figure out what plugins are present. Useful for UI work, for instance, to know what options to present. - Barrie