Hash::...::Upper(3pm)
π
Hash::...::Upper(3pm) β bestie, it's the Hash::Case::Upper page π
okay so this is the manual page for Hash::Case::Upper, and yes the header up top literally says Hash::...::Upper(3pm) because apparently even perl's own docs got shy about typing the whole thing out π anyway she's part of the User Contributed Perl Documentation and she's here to serve π
β¨ NAME β¨
Hash::Case::Upper β a native hash with enforced lower cased keys π«Ά
(i'm gonna say this exactly once and then we move on: yes that's really what it says in the original, "lower cased keys", and yes the whole rest of the page is about UPPER case. i don't make the rules, i just report them faithfully π keep reading, it makes sense in a sec.)
πΈ INHERITANCE πΈ
she's got a whole little family tree, look at her go:
Hash::Case::Upper
is a Hash::Case
is a Tie::StdHash
so like, Hash::Case::Upper is a Hash::Case, and Hash::Case is a Tie::StdHash. main character with a lineage π
π¦ SYNOPSIS π¦
the quick little "here's how you actually use her" moment, copy it exactly bestie:
use Hash::Case::Upper;
tie my(%uchash), 'Hash::Case::Upper';
$uchash{StraNGeKeY} = 3;
print keys %uchash; # STRANGEKEY
see what happened?? you wrote StraNGeKeY, she gave you back STRANGEKEY. the hash did a little glow-up on your key and never told you π
π DESCRIPTION π
Hash::Case::Upper extends Hash::Case, which lets you play various trics with hash keys. (their spelling, not mine, "trics" is exactly what the original says π)
in this implementation, the fake hash is case insensitive and the keys stored are in upper-case.
also extends "DESCRIPTION" in Hash::Case β so go read that one too, she's not repeating herself π§
β METHODS β
extends "METHODS" in Hash::Case β again, go peek at the parent, no gatekeeping here π
π Constructors π
extends "Constructors" in Hash::Case.
tie %hash, 'Hash::Case::Upper', [$values,] %optionsβ defines%hashso it has only upper-cased keys π₯ the hash gets initialized with the$values, which you specify as anARRAYor aHASH. and%options? currently there are no%optionsdefined. none. zero. that's the whole list π«Ά this one improves on the base class, see"Constructors"inHash::Case.
π Hidden object access π
extends "Hidden object access" in Hash::Case β the sneakier, under-the-hood bits.
$obj->addHashData(\%data)β inherited, see"Hidden object access"inHash::Case$obj->addPairs(@pairs)β inherited, see"Hidden object access"inHash::Case$obj->setHash(\%data)β inherited, see"Hidden object access"inHash::Case
all three are just borrowed from the parent, so follow the links, iykyk π
π SEE ALSO π
this module is part of Hash-Case version 1.07, built on January 26, 2026 β
site, because of course there's a site: http://perl.overmeer.net/CPAN/ π
π LICENSE π
for contributors, see file ChangeLog π
this software is copyright (c) 2002-2026 by Mark Overmeer.
this is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. so like, go off, but respectfully π
ok that's the whole page bestie, nothing skipped, nothing invented, every option and path and parenthetical intact π«‘
and a lil sign-off for the footer energy: this one's perl v5.40.1, dated 2026-01-26, and the page title is Hash::...::Upper(3pm) β that's a wrap, mwah πβ¨π
π¦ where this page comes from
- ubuntu resolute: libhash-case-perl 1.070-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libhash-case-perl 1.070-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms