sub CLEAR {
my $self = shift;
foreach ( @$self ) {
foreach my $key ( keys %$_ ) {
delete $_->{ $key }
}
}
$self = [ { } ];
}
####
sub CLEAR {
my $self = shift;
@$self = ( {} );
}
####
sub CLEAR {
$_[0] = [ {} ];
}
####
use Carp;
sub push_hash (\%) {
my $href = shift;
my $obj = tied %$href;
croak "must be a Tie::Hash::Stack tied hash"
unless $obj and $obj->isa('Tie::Hash::Stack');
push @$obj, {};
}
sub pop_hash (\%) {
my $href = shift;
my $obj = tied %$href;
croak "must be a Tie::Hash::Stack tied hash"
unless $obj and $obj->isa('Tie::Hash::Stack');
pop @$obj;
}
# and in your program...
tie my(%stash), 'Tie::Hash::Stack';
# ...
push_hash %stash;
# ...