Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: RFC: Perl Second-Best Practices

by qq (Hermit)
on Dec 19, 2005 at 21:44 UTC ( [id://517904]=note: print w/replies, xml ) Need Help??


in reply to RFC: Perl Second-Best Practices

In certain circumstances I like very short variable names. For example in a loop where the variable is used many times as the topic, and I want the eye to be drawn to the methods. To me:

for my $e ( @episodes ) { $e->method_one; $e->method_two; $e->method_three; }

is clearer than:

for my $episode ( @episodes ) { $episode->method_one; $episode->method_two; $episode->method_three; }

However my coworkers don't seem to like it, so I'm going to try and change.

update: s/@episode/@episodes/ in second example.

Replies are listed 'Best First'.
Re^2: RFC: Perl Second-Best Practices
by duff (Parson) on Dec 19, 2005 at 21:48 UTC

    I tend to do the same thing myself, but only in places where it isn't likely to cause confusion. For instance, if your loop had lots of other one-letter variables or if there were several that all started with "e", noticing the $e might be difficult.

Re^2: RFC: Perl Second-Best Practices
by Aristotle (Chancellor) on Dec 26, 2005 at 12:16 UTC

    That’s not a second-best practice at all, particularly if the loop variable just iterates over a well-named array or a (really) self-explanatory expression. F.ex., I’d rewrite foreach my $index ( 0 .. $#somearray ) { wibble( $index, wubble( $somearray[ $index ] ) ); } to use $i instead.

    Length is not a goal for naming variables; choosing them so the code is easier to read is. That means a name needs to be long and descriptive if the variable’s scope is large, but conversely also that it should be shorter for a more tightly scoped variable. Picking one-letter identifiers for loop variables on short loops helps readability. (Of course, if the list expression is actually very complex, you will probably want to use a longer name to describe what the expression means. Naming things is a complex craft.)

    Makeshifts last the longest.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-03-29 07:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found