Рекомендация в Кодексе Полного важно для языка, такие как C, потому что, когда у вас есть
int f(void) {
int counter;
}
значение counter
является то, что происходит, чтобы занять эту память.
В Perl, когда вы объявляете переменную с помощью
my $counter;
нет никаких сомнений в том, что значение $counter
является undef
не какой-то случайный мусор.
Таким образом, мотивация рекомендации, то есть обеспечение того, чтобы все переменные начинались с известных значений, автоматически выполняется в Perl, и нет необходимости ничего делать.
Что вы делаете с счетчиками, это увеличивать или уменьшать их. Результат:
my $counter;
# ...
++ $counter;
хорошо определен на Perl. $counter
будет хранить значение 1
.
Наконец, я бы сказал, что в большинстве случаев счетчики не нужны в Perl, и код, в котором широко используются счетные переменные, возможно, потребуется переписать.
Инициализация переменных 'undef' по-прежнему является инициализацией. – zigdon
Могу я спросить _why_ вы бы хотели сделать это? – Zaid
@ Zaid: Полная история. Я читаю Code Complete (в которой упоминается всегда инициализация переменных во время объявления, если это возможно) и смотрел на один из моих старых файлов, в котором используется множество счетчиков, которые я инициализировал сначала «zero» но позже удалили все ненужные инициализации. Я думаю о повторном вводе всех инициализаций и задал этот вопрос, чтобы найти лучший способ сделать это. – Lazer