Я ищу способ очистки всех моих массивов в программе на Perl.
В настоящее время я вызываю подпрограмму, которая явно "сбрасывает" все массивы:
sub clear_arrays{(@array1,@array2,@array3)=((),(),());}
Это заставляет меня находить все массивы в программе и буквально ссылаться на них в подпрограмме.
Я посмотрел на perldoc для reset
, undef
и delete
, но не смог интерпретировать ни один из них так, чтобы очистить все массивы.
Isесть встроенная функция Perl, которая может сделать это?
Если нет, есть ли функция, которая возвращает массив всех переменных массива?
Пример:
my @prog_arrays = getarrays();
foreach(@prog_arrays){$_ = ();}
Где getarrays()
может быть встроеннымв функции Perl, которая возвращает любые / все инициализированные массивы в программе.
РЕДАКТИРОВАТЬ: Моя конкретная ситуация включает в себя только два глобальных массива, которые необходимо сбросить.Я расширил вопрос из любопытства, а не необходимости.По сути, мои глобальные значения
@email_subject
&
@email_msg
.
У них есть значения, вставленные в них по мере выполнения сценария и сбора / анализа данных.В конце сценария отправляется сообщение электронной почты, и сценарий может выполняться снова в зависимости от переменной условия цикла.
Если он снова запустится, мне нужно очистить эти 2 глобальных значения, чтобы они могли снова объединиться во время следующего цикла цикла.Это не убивает меня, чтобы очистить эти два массива с помощью буквальной ссылки, но мне просто интересно, есть ли в Perl какая-то встроенная функция для очистки массивов без буквальной ссылки на них.
Возможно, это не лучший способвыполнить это, но это был первый интуитивный вариант, который я рассмотрел.