Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: How Much Is Too Much (on one line of code)?

by guinex (Sexton)
on Jun 18, 2007 at 12:22 UTC ( #621771=note: print w/replies, xml ) Need Help??


in reply to How Much Is Too Much (on one line of code)?

Too much on one line.

Since one reads code left to right, there is a tension between the brevity you gain from statement modifiers and the cognitive burden of having to mentally rewrap the preceding statement with a conditional. Backtracking to wrap a conditional around another conditional is a bit much IMHO.

-guinex

  • Comment on Re: How Much Is Too Much (on one line of code)?

Replies are listed 'Best First'.
Re^2: How Much Is Too Much (on one line of code)?
by Jenda (Abbot) on Jun 18, 2007 at 13:21 UTC

    One does, other doesn't. Just like I do not see any reason to rewrap "Stay at home if it rains." to "If it rains, stay at home." I do not see the need to rewrap statement modifiers.

      The issue is the other conditional.

      If the dog is barking let him in otherwise give him a bone, but only if it is raining.

      This sentence reads nicer if we place the "if it is raining" earlier in the sentence. I however, would force the truth of $country

      my $country = $card->country || 'gbr'; $country = $country eq 'gbr' ? '' : uc "[$country]";

      Unfortunately, this breaks when we need to check definedness (until we have a reliable // operator). In that case (assume "0" is a valid country) I would probably go with something like:

      my $country = $card->country; $country = (!defined($country) or $country eq 'gbr') ? '' : uc "[$coun +try]";

      Which is just as complex as the original, but the full conditional is easier to find.

      Good Day,
          Dean

        I would add a comma after 'let him in', it splits the clauses better.

        How can you feel when you're made of steel? I am made of steel. I am the Robot Tourist.
        Robot Tourist, by Ten Benson

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://621771]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (8)
As of 2017-10-24 08:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My fridge is mostly full of:

















    Results (286 votes). Check out past polls.

    Notices?