On Wed, Jun 04, 2003 at 10:23:50AM -0500, Ken Williams wrote:
> On Tuesday, June 3, 2003, at 10:50 PM, Craig A. Berry wrote:
> >Michael at one point suggested to me a tied hash. If that means what
> >I think it means, it would do a lookup on 'Foo.pm' and then, if that
> >lookup failed, try 'foo.pm'.
>
> Better to just have a regular hash keyed by lower-case names:
>
> %proper_case = map { lc, $_ } maniread();
I prefer the tied approach instead of scattering special logic for
non-case-preserving filesystems (and VMS is the only one I know) all over
the place as it is now. Look at Manifest.t to understand why this is a
pain in the ass.
Also, maniread() currently *always* downcases the filename on VMS. This
is bad. The tied behavior is an improvement and would be active only on
VMS, the only OS where this matters. The best part is it doesn't matter
if the VMS user has a case-preserving file system or not, it'll still
work.
> It's possible that the 'dist' or 'distdir' actions should warn the
> author if two entries in the MANIFEST are the same modulo case.
A very good idea, especially considering OS X and Windows, but distdir
creates too much noise and the warnings are likely to get lost. However,
its a great idea for a certain other module building system.
--
The desired effect is what you get when you improve your interplanetary
funksmanship.