Есть ли способ повторно объявить переменную в той же области, используя ключевое слово my
в perl? Когда я запускаю следующий скрипт:
use warnings;
use strict;
my $var = 3;
print "$var\n";
undef $var;
my $var = 4;
print "$var\n";
Я получаю "желаемый" вывод, но есть также предупреждение "my" variable $var masks earlier declaration in same scope
. Есть ли способ повторно объявить переменную без предупреждения?
Я не уверен, но я думаю, что это потому, что my
происходит во время компиляции, а undef
происходит во время выполнения, потому что предупреждение печатается даже перед первым print
оператором. (Я даже не уверен, что Perl на самом деле компилирует эту вещь перед запуском.)
Контекст: Я хочу иметь возможность скопировать кусок кода и вставить его несколько раз в один и тот же файл без необходимости редактировать все объявления my
. Я думаю, что это не лучший способ сделать это, но любое решение проблемы будет оценено.