exists now works on negative arrays
rkinyon [Wed, 22 Feb 2006 20:09:58 +0000 (20:09 +0000)]
lib/DBM/Deep.pm
lib/DBM/Deep/Hash.pm

index 8fd2fa3..04e5835 100644 (file)
@@ -1364,7 +1364,7 @@ sub DELETE {
        # Delete single key/value pair or element given plain key or array index
        ##
     my $self = $_[0]->_get_self;
-       my $key = ($self->root->{filter_store_key} && $self->type eq TYPE_HASH) ? $self->root->{filter_store_key}->($_[1]) : $_[1];
+       my $key = $_[1];
        
        my $unpacked_key = $key;
        if (($self->type eq TYPE_ARRAY) && ($key =~ /^\d+$/)) { $key = pack($LONG_PACK, $key); }
index a6a27ba..98b5d7e 100644 (file)
@@ -61,6 +61,15 @@ sub EXISTS {
     return $self->SUPER::EXISTS( $key );
 }
 
+sub DELETE {
+    my $self = shift->_get_self;
+       my $key = ($self->root->{filter_store_key})
+        ? $self->root->{filter_store_key}->($_[0])
+        : $_[0];
+
+    return $self->SUPER::DELETE( $key );
+}
+
 sub FIRSTKEY {
        ##
        # Locate and return first key (in no particular order)