The following module was proposed for inclusion in the Module List: modid: Readonly DSLIP: Rdprp description: Create read-only scalars, arrays, hashes. userid: ROODE (Eric J. Roode) chapterid: 6 (Data_Type_Utilities) communities: comp.lang.perl.modules, RPI lily
similar: constant rationale: This module provides a useful extension to fundamental Perl data types, allowing them to be marked as non-modifiable at runtime or compile-time. It provides several advantages in both interface and functionality over the "constant" pragma. "constant" creates pseudo-variables that look like C macros (for example, no leading $@% character). It's sometimes difficult to use these "variables" -- you can't take references to them, you have to be careful when using them in certain syntactically-ambiguous situations (eg as hash keys). It's difficult to create and use hierarchical variables (a constant array of arrays of hashes, eg). You can't really make constant hashes with it (indeed, you can't really make constant arrays, only constant lists). Readonly solves all of these problems. The variables it creates retain their leading $@% character; you can take references to them and the referent remains read-only; it's simple to make hierarchical data structures read-only -- either at the top-level only, or deeply. Since this module's function is of a fundamental nature, and since it includes a small hierarchy of subordinate packages, I believe that a top-level namespace is justified. It is my hope that the Perl community will agree. Thanks. enteredby: ROODE (Eric J. Roode) enteredon: Tue Jan 7 22:12:06 2003 GMT The resulting entry would be: Readonly Rdprp Create read-only scalars, arrays, hashes. ROODE Thanks for registering, The Pause Team PS: The following links are only valid for module list maintainers: Registration form with editing capabilities: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=e5100000_0b84654f9cc6f077&SUBMIT_pause99_add_mod_preview=1 Immediate (one click) registration: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=e5100000_0b84654f9cc6f077&SUBMIT_pause99_add_mod_insertit=1