X-Git-Url: http://git.rot13.org/?p=perl-cwmp.git;a=blobdiff_plain;f=lib%2FCWMP%2FStore%2FDBMDeep.pm;h=80fabd1360c084f7d6763caf82cb37393648c1ab;hp=04e495902f8b7519d8dd46caa8cf2f858f67e4ad;hb=73114373a890391990bba21f0b4eadb18a4a859b;hpb=b67a262c16c1bf1ed95d99893efc946743842574 diff --git a/lib/CWMP/Store/DBMDeep.pm b/lib/CWMP/Store/DBMDeep.pm index 04e4959..80fabd1 100644 --- a/lib/CWMP/Store/DBMDeep.pm +++ b/lib/CWMP/Store/DBMDeep.pm @@ -6,6 +6,7 @@ use warnings; use DBM::Deep; use Data::Dump qw/dump/; +use Clone qw/clone/; use Carp qw/confess/; =head1 NAME @@ -62,12 +63,14 @@ sub open { sub update_uid_state { my ( $self, $uid, $state ) = @_; + my $data = clone( $state ); + if ( my $o = $db->get( $uid ) ) { warn "## update state of $uid\n" if $debug; - return $o->import( $state ); + $o->import( $data ); } else { warn "## create new state for $uid\n" if $debug; - return $db->put( $uid => $state ); + $db->put( $uid => $data ); } } @@ -81,9 +84,7 @@ sub get_state { my ( $self, $uid ) = @_; if ( my $state = $db->get( $uid ) ) { - return $state->export; - } else { - return; + $state->export; } }