diff options
author | Larry Wall <lwall@netlabs.com> | 1994-10-17 23:00:00 +0000 |
---|---|---|
committer | Larry Wall <lwall@netlabs.com> | 1994-10-17 23:00:00 +0000 |
commit | a0d0e21ea6ea90a22318550944fe6cb09ae10cda (patch) | |
tree | faca1018149b736b1142f487e44d1ff2de5cc1fa /lib/TieHash.pm | |
parent | 85e6fe838fb25b257a1b363debf8691c0992ef71 (diff) | |
download | perl-a0d0e21ea6ea90a22318550944fe6cb09ae10cda.tar.gz |
perl 5.000perl-5.000
[editor's note: this commit combines approximate 4 months of furious
releases of Andy Dougherty and Larry Wall - see pod/perlhist.pod for
details. Andy notes that;
Alas neither my "Irwin AccuTrack" nor my DC 600A quarter-inch cartridge
backup tapes from that era seem to be readable anymore. I guess 13 years
exceeds the shelf life for that backup technology :-(.
]
Diffstat (limited to 'lib/TieHash.pm')
-rw-r--r-- | lib/TieHash.pm | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/TieHash.pm b/lib/TieHash.pm new file mode 100644 index 0000000000..0cb4afa20d --- /dev/null +++ b/lib/TieHash.pm @@ -0,0 +1,42 @@ +package TieHash; +use Carp; + +sub new { + my $pack = shift; + $pack->TIEHASH(@_); +} + +# Grandfather "new" + +sub TIEHASH { + my $pack = shift; + if (defined &{"{$pack}::new"}) { + carp "WARNING: calling ${pack}->new since ${pack}->TIEHASH is missing" + if $^W; + $pack->new(@_); + } + else { + croak "$pack doesn't define a TIEHASH method"; + } +} + +sub EXISTS { + my $pack = ref $_[0]; + croak "$pack doesn't define an EXISTS method"; +} + +sub CLEAR { + my $self = shift; + my $key = $self->FIRSTKEY(@_); + my @keys; + + while (defined $key) { + push @keys, $key; + $key = $self->NEXTKEY(@_, $key); + } + foreach $key (@keys) { + $self->DELETE(@_, $key); + } +} + +1; |