in reply to Re^4: Unify windows filenames
in thread Unify windows filenames
There is a conceptual error in File::Spec: It assumes that the ENTIRE operating system is either case sensitive or not. This was acceptable for "old" operating systems that could mount only their native file systems, but modern systems can mount foreign file systems, each with different behaviour. Linux' ext2/3/4 are clearly case sensitive, FAT is case insensitive even under linux. VFAT and NTFS usually are case insensitive but case preserving, but there is a mount option ("posix") that "allows two files that only differ in case" - so VFAT and NTFS can be case sensitive.
The correct return value for File::Spec::case_tolerant() should be "it depends" for most operating systems. You need to test each directory along the path, and the answer may be different for each directory.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)