diff --git a/lib/UnQLite.pm b/lib/UnQLite.pm index 04c55fb..3868d37 100644 --- a/lib/UnQLite.pm +++ b/lib/UnQLite.pm @@ -118,7 +118,9 @@ sub STORE { sub DELETE { my ($self, $key) = @_; - my $prev = $self->kv_fetch($key); + my $prev = $self->[1]->kv_fetch($key); + my $errstr = $self->[1]->errstr; + return if $errstr && $errstr eq 'UNQLITE_NOTFOUND'; $self->[1]->kv_delete($key) or Carp::croak $self->[1]->errstr; $prev; } diff --git a/t/03_tie.t b/t/03_tie.t index 7ccf39e..9c66d6c 100644 --- a/t/03_tie.t +++ b/t/03_tie.t @@ -28,6 +28,9 @@ my $tmp = tempdir( CLEANUP => 1 ); is($hash{yay}, 'yappo'); $hash{foo} = 'baz'; is($hash{foo}, 'baz'); + $hash{delete} = 'delete'; + is(delete $hash{delete}, 'delete'); + is(delete $hash{delete}, undef); is(join(" ", sort keys %hash), "foo yay"); is(join(" ", sort values %hash), "baz yappo");