13 if (defined &{"$pack\::new"}) {
14 carp "WARNING: calling $pack\->new since $pack\->TIEHASH is missing"
19 croak "$pack doesn't define a TIEHASH method";
25 croak "$pack doesn't define an EXISTS method";
30 my $key = $self->FIRSTKEY(@_);
33 while (defined $key) {
35 $key = $self->NEXTKEY(@_, $key);
37 foreach $key (@keys) {
38 $self->DELETE(@_, $key);
42 # The TieHash::Std package implements standard perl hash behaviour.
43 # It exists to act as a base class for classes which only wish to
44 # alter some parts of their behaviour.
49 sub TIEHASH { bless {}, $_[0] }
50 sub STORE { $_[0]->{$_[1]} = $_[2] }
51 sub FETCH { $_[0]->{$_[1]} }
52 sub FIRSTKEY { my $a = scalar keys %{$_[0]}; each %{$_[0]} }
53 sub NEXTKEY { each %{$_[0]} }
54 sub EXISTS { exists $_[0]->{$_[1]} }
55 sub DELETE { delete $_[0]->{$_[1]} }
56 sub CLEAR { %{$_[0]} = () }