Вы не видите никаких изменений, потому что вы никогда не меняете их. Поскольку это не имеет смысла, я полагаю, вы хотели изменить $ip_address{country}
, когда вы делаете
$self->{%$ref}{'country'} = 'something';
Если так, то должно быть
$hash->{country} = 'something';
Конечно, $hash
хранится в $self->{ref}
, поэтому вы также можете использовать
$self->{ref}->{country} = 'something';
, который можно сократить до
$self->{ref}{country} = 'something';
PS & mdash; Что со всеми our
переменными? Вы почти никогда не должны использовать our
. @ISA
и @EXPORT_OK
- это единственное, что я могу придумать. Все это должно быть my
.
PSS & mdash; На самом деле, почти ничего из этого не должно существовать вообще. Что с объявлением переменных, которые вы даже не используете? Одно из этих заявлений делает вашу ошибку намного менее очевидной.