Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Объявление переменных |
Автор: igorold 2.8.2006, 08:23 | ||||||
Как правильно объявить переменную в частности $dWhere так:
или так:
если она потом используется как текстовая переменная и сразу же используется операция .=
или без разницы? |
Автор: Nab 2.8.2006, 11:56 |
В Вашем случае все-равно... неопределенная переменная примет строчное значение нулевой длины... хотя я стараюсь по возможности, неопределенности не оставлять ![]() |
Автор: igorold 2.8.2006, 12:26 |
я обычно тоже стараюсь так же, но есть какие-нибудь стандарты или рекомендации? |
Автор: Nab 2.8.2006, 12:47 | ||
не думаю... нужно ориентироться по контексту... |
Автор: nitr 2.8.2006, 20:23 |
думаю станарты всегда надо смотреть в документации ;) perldoc а разницы в объявлении нет =) , имхо второй вариант "симпотичней" ;) |
Автор: amg 3.8.2006, 07:22 | ||
Perl не требует обязательного объявления переменных, в нем даже нет специального оператора для этого. (Слово my служит не для объявления переменных, а для придания им локального статуса.)
Немного не так. Неопределенная переменная примет значение undef, а строчное значение нулевой длины она примет, например, если ей присвоить пустую строку (как в первом примере 1-го поста). Различить эти ситуации можно с помощью слова defined. Кроме того, Perl с ключом -w выдаст на STDERR предупреждение, если, например, попытаться напечатать неопределенную переменную. Поэтому, чтобы на STDERR не было мусора, лучше присвоить ей что-нибудь, если есть риск использования неопределенной переменной в составе строки или при печати. |
Автор: Nab 3.8.2006, 10:08 |
Все верно, но я этими словами имел ввиду, что при конкатенации с другой строкой неопределенной переменной будет присвоено именно строка нулевой длины |
Автор: korob2001 3.8.2006, 10:42 | ||
Почему-то мне кажется, что лучше всего переменную объявлять и здесь же инициализировать, т.е. вот так примерно:
Раньше этого не делал, потом занимался чисткой предупреждений. |