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 %hash so it has only upper-cased keys πŸ”₯ the hash gets initialized with the $values, which you specify as an ARRAY or a HASH. and %options? currently there are no %options defined. none. zero. that's the whole list 🫢 this one improves on the base class, see "Constructors" in Hash::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" in Hash::Case
  • $obj->addPairs(@pairs) β€” inherited, see "Hidden object access" in Hash::Case
  • $obj->setHash(\%data) β€” inherited, see "Hidden object access" in Hash::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