From fae9e866eeb77f51e19e5eab79cdc57e220d48ef Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Tue, 11 Feb 2020 22:56:42 -0800 Subject: [PATCH] HashObject: improve error messages for removing non-existing items --- PBot/HashObject.pm | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/PBot/HashObject.pm b/PBot/HashObject.pm index 572c5856..a78d45af 100644 --- a/PBot/HashObject.pm +++ b/PBot/HashObject.pm @@ -158,9 +158,12 @@ sub unset { return $result; } - delete $self->{hash}->{$lc_index}->{$key}; - $self->save; - return "[$self->{name}] $self->{hash}->{$lc_index}->{_name}: $key unset."; + if (defined delete $self->{hash}->{$lc_index}->{$key}) { + $self->save; + return "[$self->{name}] $self->{hash}->{$lc_index}->{_name}: $key unset."; + } else { + return "[$self->{name}] $self->{hash}->{$lc_index}->{_name}: $key does not exist."; + } } sub exists { @@ -208,15 +211,22 @@ sub remove { } if (defined $data_index) { - delete $self->{hash}->{$lc_index}->{$data_index}; - delete $self->{hash}->{$lc_index} if keys(%{$self->{hash}->{$lc_index}}) == 1; - $self->save unless $dont_save; - return "$self->{hash}->{$lc_index}->{_name}.$data_index removed from $self->{name}"; + if (defined delete $self->{hash}->{$lc_index}->{$data_index}) { + delete $self->{hash}->{$lc_index} if keys(%{$self->{hash}->{$lc_index}}) == 1; + $self->save unless $dont_save; + return "$self->{hash}->{$lc_index}->{_name}.$data_index removed from $self->{name}"; + } else { + return "$self->{name}: $self->{hash}->{$lc_index}->{_name}.$data_index does not exist."; + } } my $data = delete $self->{hash}->{$lc_index}; - $self->save unless $dont_save; - return "$data->{_name} removed from $self->{name}."; + if (defined $data) { + $self->save unless $dont_save; + return "$data->{_name} removed from $self->{name}."; + } else { + return "$self->{name}: $data_index does not exist."; + } } 1;