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