A code for a tied hash could look like:
File TieHashCI.pm:
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;
and use it in your main program:
use TieHashCI;
my %data = (); tie (%data, 'TieHashCI');
and then just work with it...
If TieHashCI.pm is not in your @INC, try something like:
BEGIN {
use FindBin qw($Bin);
use lib "$Bin/lib"; # if TieHashCI is in ./lib
} # BEGIN
use TieHashCI;
But it wastes lots of ressources...
Best regards,
perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32" |