Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: A matter of style: how to perform a simple action based on a simple condition?

by Tux (Canon)
on Sep 26, 2010 at 18:27 UTC ( [id://862106]=note: print w/replies, xml ) Need Help??


in reply to Re: A matter of style: how to perform a simple action based on a simple condition?
in thread A matter of style: how to perform a simple action based on a simple condition?

The condition heavily weighs it's position quite often. Compare with:

If you need milk, go and buy some If the trash is full take it out If it is too hot, open the window

In the first, the condition is now more important than how to meet it. (At least in my perception. In the latter two, I just switched and personally think it is clearer that way. Note that English is not my native tongue and that I am very well aware that not all people think alike. That is why I love perl5: it is very easy to write it as it best fits your mind while still not too hard to read when others wrote it the way they think is best.

In the third example it is also important to realize the number of options on either side of the and/or/if/unless.

If it is too hot, turn down the heating If it is too hot, open the window If it is too hot, turn on the air conditioning If it is too hot, go out for some fresh air

Of course this also goes the other way: there may be a number of reasons to open the window (other than to throw out ... from the 13th floor).


Enjoy, Have FUN! H.Merijn

Replies are listed 'Best First'.
Re^3: A matter of style: how to perform a simple action based on a simple condition?
by Your Mother (Archbishop) on Sep 26, 2010 at 21:45 UTC

    You sort of describe what I see as the main reason to prefer the postfix. “If it is too hot,” just for one example has a dozen, if not nearly infinite, possible remedies, as you note. Drink cold water, take sleeping pills to remain unconscious through it, buy a swamp cooler, shoot yourself to end your misery, fill the oceans with iron powder… The action matters far more than the condition. The condition initiates extra mental effort when it comes first. It creates a theoretical, if not actual, decision tree. You can race ahead to what you think the action should/will be.

    It's also, as noted by many, noisier and generally multiline, to do if blocks which also increases apprehension impedance. Again, in my view. It's Perl, we can do what we wish. I think most of the above replies in favor of the block are more about justifying one's comfort zone, a valid thing to care about, versus actually considering what might be easier to write and read in the simple case (I would never advocate postfix for a logic tree or situations with several actions and conditions in the statement).

    It's funny you mentioned native languages because the same thing occurred to me. I am curious if the SVO order of English—or even lazy idiomatic regionalisms of which I'm the victim—have any bearing in the perception of which is “easier.”

Log In?
Username:
Password:

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

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

    No recent polls found