Не отделяйте имена переменных и функций от следующей за ними открывающей скобки
Важно ставить открывающую скобку слитно с именем функции или переменной. В противном случае можно визуально спутать функцию с ключевым словом, а начало выражения для элемента массива или хэша со скаляром.
# ХОРОШО next CANDIDATE if open_region($i); $candidates[$i] = $incumbent{ $candidates[$i]{region} }; # ПЛОХО! next CANDIDATE if open_region ($i); $candidates [$i] = $incumbent { $candidates [$i] {region} };
Осмысленные названия идентификаторов
Выбирайте осмысленные названия для идентификаторов (переменных, констант, функций). Исключение составляют итераторы циклов, где допускаются короткие идентификаторы: $i, $n и т.п. При этом не допускается калька с русского языка («$polzovatel», «$sajt» и т.п.). Если вы не можете вспомнить, что это имя значит — у вас проблемы.
Строчные буквы для названий переменных и функций
Названия всех переменных и функций должны состоять только из строчных букв, цифр и знаков подчёркивания: «get_domain_name» и т.п.
Хотя короткие идентификаторы типа $gotit возможно и неплохи, используйте знак подчеркивания для разделения слов. В общем случае $var_names_like_this прочесть легче чем $VarNamesLikeThis.
Заглавные буквы для констант
Константы именуются только с использованием заглавных букв:
use constant DEBUG => 0; Readonly my $STAGING => 1;
Именуйте массивы во множественном числе, а скаляры в единственном
Массивы рекомендуется называть во множественном числе: @users, @objects, а скаляры — в единственном: $user, $object. Что касается хешей, то некоторые авторы рекомендуют также именовать их в единственном числе (%param), т. к. для хэшей гораздо более распространено обращение к единственному их элементу ($param{user_id}), в то время как массивы чаще обрабатываются целиком.
Используйте именованные итераторы в циклах for/foreach
Использование $_ в качестве итератора в циклах for / foreach допускается лишь в случае очень коротких, однострочных циклов / циклов с постфиксной записью:
print $_ for @array; # Допустимо for (@array) { # НЕДОПУСТИМО! .... # длинное тело цикла }
Не используйте «магических чисел»
«Магическое число» — это число, которое появляется в коде без всякого объяснения; например «$bank_account_balance *= 57.492;». Вы смотрите на это число и не понимаете, откуда оно взялось и почему именно оно. Поскольку Вы не понимаете значения этого числа, Вы не понимаете код.
В целом, числовые литералы кроме 0 и 1 вообще не должны использоваться. Если Вам нужно использовать другие константы — оформите их как константы (через use constant, use Readonly или как ещё) с осмысленным именем.
use Readonly; Readonly::Scalar $PI => 3.14159265358979; ... my $square = $PI * $radius ** 2;
Не используйте числовые коды ошибок. Используйте осмысленные строковые коды
Это правило — следствие из предыдущего. Вместо числовых кодов ошибок используйте осмысленные строковые — так гораздо нагляднее. Сравните: код 3654 vs 'HOSTNAME_INVALID', 20053 vs 'NOT_ENOUGH_MONEY_ON_ACCOUNT'. Магическим числам в коде (в том числе в качестве кодов ошибок) — наше решительное нет!
use English
use English использовать не запрещается, но предпочтение отдается коротким именам. Они - стандарт мира Perl и знание коротких переменных упрощает чтение кода сторонних модулей.