Mail::Field lowercasing submodule names?

So, for some reason I don’t quite understand, my application, which uses
MIME::Tools, which in turn uses Mail::Field dies after being unable
to find Mail/field/addrlist.pm. What it really seems to want is
Mail::Field::AddrList. (The same is actually true of Date.pm, too)

The culprit code appears to be the line “my $p = lc $1;” in _require_dir.
I presume there’s a good reason (msdos filesystems?) for this that I’m just
missing. If you have any suggestions, I’d greatly appreciate them.

Thanks,
Jesse Vincent
jesse@fsck.com

sub require_dir
{
my($pkg,$dir,$dir_sep) = @
;

if(opendir(DIR,$dir))
{
my @inc = ();
my $f;

foreach $f (readdir(DIR))
{
next
unless $f =~ /^([\w-]+)/;

 my $p = lc $1;
 my $n = $dir . $dir_sep . $p;
 if(-d $n )
  {
   _require_dir( $pkg . "::" . $f, $n, $dir_sep);
  }
 else
  {
   $p =~ s/-/_/go;
   eval "require ${pkg}::$p"
  }
}

closedir(DIR);
}