package BerkeleyDB::Hash::CasePreserve; sub FETCH { my( $self, $key ) = @_; unless( $self->EXISTS( $key ) ) { my $key_re = qr/\A$key\z/i; my $check = $self->FIRSTKEY( ); do { if( $check =~ $key_re ) { $key = $check; last; } } while( $check = $self->NEXTKEY( $check ) ); } return $self->SUPER::FETCH( $key ); }