1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
=encoding utf8
=head1 NAME
Hash::Case::Preserve - hash with enforced lower cased keys
=head1 INHERITANCE
Hash::Case::Preserve
is a Hash::Case
is a Tie::StdHash
=head1 SYNOPSIS
use Hash::Case::Preserve;
tie my(%cphash), 'Hash::Case::Preserve';
$cphash{StraNGeKeY} = 3;
print keys %cphash; # StraNGeKeY
print $cphash{strangekey}; # 3
print $cphash{STRANGEKEY}; # 3
=head1 DESCRIPTION
Hash::Case::Preserve extends L<Hash::Case|Hash::Case>, which lets you play
various trics with hash keys. This extension implements a fake
hash which is case-insentive. The keys are administered in the
casing as they were used: case-insensitive but case-preserving.
Extends L<"DESCRIPTION" in Hash::Case|Hash::Case/"DESCRIPTION">.
=head1 METHODS
Extends L<"METHODS" in Hash::Case|Hash::Case/"METHODS">.
=head2 Constructors
Extends L<"Constructors" in Hash::Case|Hash::Case/"Constructors">.
=over 4
=item $obj-E<gt>B<addHashData>(HASH)
Inherited, see L<Hash::Case/"Constructors">
=item $obj-E<gt>B<addPairs>(PAIRS)
Inherited, see L<Hash::Case/"Constructors">
=item $obj-E<gt>B<setHash>(HASH)
Inherited, see L<Hash::Case/"Constructors">
=item B<tie>(HASH, 'Hash::Case::Preserve', [VALUES,] OPTIONS)
Define HASH to be case insensitive, but case preserving.
The hash is initialized with the VALUES, specified as ref-array (passing
a list of key-value pairs) or ref-hash.
OPTIONS is a list of key/value pairs, which specify how the hash
must handle preservation. Current options:
-Option--Default
keep 'LAST'
=over 2
=item keep => 'FIRST' | 'LAST'
Which casing is the preferred casing? The FIRST appearance or the LAST.
Only stores will affect the casing, deletes will undo the definition.
Defaults to LAST, which is slightly faster.
=back
=back
=head1 SEE ALSO
This module is part of Hash-Case distribution version 1.05,
built on February 06, 2020. Website: F<http://perl.overmeer.net/CPAN/>
=head1 LICENSE
Copyrights 2002-2020 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://dev.perl.org/licenses/>
|