Update the coding guidelines for Perl 5. Signed-off-by: Ted Zlatanov <tzz@xxxxxxxxxxxx> --- Documentation/CodingGuidelines | 44 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index 1d7de5f..951d74c 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -179,6 +179,50 @@ For C programs: - Use Git's gettext wrappers to make the user interface translatable. See "Marking strings for translation" in po/README. +For Perl 5 programs: + + - Most of the C guidelines above apply. + + - We try to support Perl 5.8 and later ("use Perl 5.008"). + + - use strict and use warnings are strongly preferred. + + - As in C (see above), we avoid using braces unnecessarily (but Perl forces + braces around if/unless/else/foreach blocks, so this is not always possible). + At least make sure braces do not sit on their own line, like with C. + + - Don't abuse statement modifiers--they are discouraged. But in general: + + ... do something ... + do_this() unless (condition); + ... do something else ... + + should be used instead of + + ... do something ... + unless (condition) { + do_this(); + } + ... do something else ... + + *only* when when the condition is so rare that do_this() will be called + almost always. + + - We try to avoid assignments inside if(). + + - Learn and use Git.pm if you need that functionality. + + - For Emacs, it's useful to put the following in + GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode: + + ;; note the first part is useful for C editing, too + ((nil . ((indent-tabs-mode . t) + (tab-width . 8) + (fill-column . 80))) + (cperl-mode . ((cperl-indent-level . 8) + (cperl-extra-newline-before-brace . nil) + (cperl-merge-trailing-else . t)))) + Writing Documentation: Every user-visible change should be reflected in the documentation. -- 1.7.9.rc2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html