Я согласен с идеей, что переменные не следует инициализировать до тех пор, пока вы не собираетесь их использовать.Намного легче запомнить, что представляет переменная, если она используется кодом, который ее будет использовать, и это уменьшает вероятность того, что переменная будет неправильно использована между инициализацией и правильным использованием.
Проблемы возникают, когдаИспользование этой переменной внутри цикла или два.Затем затраты на инициализацию умножаются, и это может начать влиять на производительность.
В Perl (или, как правило, в зависимости от обстоятельств), есть какие-то изящные методики, позволяющие поместить инициализацию переменной вцикл, но такой, что он инициализируется только при первом проходе?
Я бы подумал о чем-то вроде:
my $variable = undef;
while ($outer_loop) {
while ($inner_loop) {
$variable = $variable || 'initial_value'
}
}
Примечание: подразумевается, что $variable
не переназначается внутрицикл.
Теперь, может быть, это я, но это выглядит немного не элегантно.
Итак, вот мой вопрос: есть ли более аккуратный способ сделать это, или мне просто нужно перебить себяи поставить под угрозу организацию кода или поглотить это «не элегантное» решение, описанное выше?