Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: RFC: Perl Second-Best Practices

by qq (Hermit)
on Dec 19, 2005 at 21:44 UTC ( #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.


Comment on Re: RFC: Perl Second-Best Practices
Select or Download Code
Re^2: RFC: Perl Second-Best Practices
by duff (Vicar) 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
Node Status?
node history
Node Type: note [id://517904]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (16)
As of 2015-07-01 17:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (15 votes), past polls