package TieHashCI; use Tie::Hash; use vars qw (@ISA); @ISA = qw(Tie::StdHash); #my $exists = 0; sub STORE { my ($self, $key, $value) = @_; return( $self->{ lc $key } = $value ); } sub FETCH { my ($self, $key) = @_; # print ("Fetch $key\n"); return( $self->{ lc $key } ); } sub EXISTS { my ($self, $key) = @_; # $exists++; # print STDOUT ("."); return( exists $self->{ lc $key } ); } sub DEFINED { my ($self, $key) = @_; # print ("Defined $key\n"); return( defined $self->{ lc $key } ); } sub DELETE { my ($self, $key) = @_; # print ("Delete $key\n"); return (delete $self->{ lc $key } ); } # sub CLEAR {} # sub FIRSTKEY{}; # sub NEXTKEY{}; END { # print ("Exists: $exists\n"); } 1; #### use TieHashCI; my %data = (); tie (%data, 'TieHashCI'); #### BEGIN { use FindBin qw($Bin); use lib "$Bin/lib"; # if TieHashCI is in ./lib } # BEGIN use TieHashCI;