Я пытаюсь удалить определенные пары ключ / значение из хэша, но я получаю, что для символа Global требуется явное исключение имени пакета, и я не знаю, как это отладить. Я читал о некоторых решениях, но ни одно из них, похоже, не работает. Таким образом, хэш объявлен следующим образом:
my $hash = foo();
затем я хэш, используя эту строку кода:
while (my ($key, $value) = each %$hash)
и в блоке я выбираю ненужные значения и сохраняю ключи для этих значений в массиве, который был объявлен так (перед циклом, конечно):
my @keysArray = ();
Затем я получаю доступ к массиву, чтобы получить ключи, используя этот код, чтобы я мог удалить их из хеша:
for my $key (@keysArray){
delete $hash{$key};# this line of code is causing the problem
}
Последняя строка, которую я написал, вызывает глобальный символ "% hash", требует явного исключения имени пакета.
Любые исправления или я здесь что-то не так делаю.
P.S. Я изменил имена переменных и удалил другой внутренний код, но формат тот же.
Помогите пожалуйста!
Спасибо.