Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Rules of Proper Perl Style

by jeorgen (Pilgrim)
on Feb 14, 2001 at 18:21 UTC ( [id://58342]=note: print w/replies, xml ) Need Help??


in reply to Rules of Proper Perl Style

Here are some ideas:

1. Do not use $_ (implicitly), use named variables.
Reason : You need to keep track of where the value of $_ is created, and where it is destroyed, which is difficult. You also need to keep track of what functions use $_, and as what argument.

2. Do not use consecutive maps and/or greps on a line. Split them into several lines with temporary variables, or use foreach.
Reason: Hard to look into maps and greps with a debugger.

3. Write long variable and function names, as "jump_to_good_place_in_file()",

my $current_template_contents = $self->current_template_contents;

(OK, I write almost ridiculously long names, but it works for me :-)

4. Write methods that are no longer than one screen. If longer, make it into two methods.

5. Use objects and methods instead of subroutines. Objects give a spatial relationship between chunks of code, which is easier for the (average) mind to grasp than several subroutines called at diiferent places in a program.

6. Write a lot of comments, especially about the purpose of a code chunk.

/jeorgen

Replies are listed 'Best First'.
Re: Re: Rules of Proper Perl Style
by salvadors (Pilgrim) on Feb 15, 2001 at 23:24 UTC

    6. Write a lot of comments, especially about the purpose of a code chunk.

    Time for me to beat my "comments" drum again.

    Ideally comments should not explain the purpose of a code block. The purpose should be self-evident. Moving your code out to a well named method/sub can often help greatly with this.

    Instead, comments should explain the WHY behind the particular manner in which you achieve your purpose. Any average programmer should be able to read your code and see easily enough what it does. But even a great programmer might have difficult knowning why you did it a certain way. That's where good comments save a lot of head-scratching.

    Tony

    Tony

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://58342]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2024-04-18 01:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found