my %ubackup = %udat; eval { $self->logout; $self->login(username => $username); }; if($@) { %udat = %ubackup; die $@; } #### sub DESTROY { my ($self) = @_; eval { $self->_unbind; }; } #### local $@; eval { $self->_unbind; };