Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^5: Automatically add all defined functions to your @EXPORT

by Tanktalus (Canon)
on Jun 21, 2005 at 16:24 UTC ( [id://468740]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Automatically add all defined functions to your @EXPORT
in thread Automatically add all defined functions to your @EXPORT

if( $var1 == 1 ) { if( $var2 == 2 ) { doSomething(); } }
In preference to
if( $var1 == 1 && $var2 == 2 ) { doSomething(); }
(would you?).

Actually, I quite often find that the first of these two is exactly what I want as it makes what I'm doing much more clear. Othertimes, I use the latter. It really depends on whether the two tests are related or not, as well as whether there are other things I want to do in the $var==1 case but only if $var2!=2.

So I often find myself writing a grep of a grep. Or a grep of a map of a map of a grep. Or a map of a grep of a grep. Or ... when a single map may just do fine.

Your first example, having two if's to check the same thing, isn't really analogous to combining grep's since each grep is checking different things.

Replies are listed 'Best First'.
Re^6: Automatically add all defined functions to your @EXPORT
by BrowserUk (Patriarch) on Jun 21, 2005 at 17:09 UTC
    Actually, I quite often find that the first of these two is exactly what I want as it makes what I'm doing much more clear. Othertimes, I use the latter.

    Horses for courses I guess, but I think that in most every case I can recall, I find that <code> if( $var == 1 and $var == 2 )} doSomething(); } <code>

    is as clear if not clearer than nested ifs as it clearly demonstrates that doSomething is dependant upon both condition; removes the potential for inadvertant mis-inclusions; and clarifes through the reduced clutter of unnecessary punction and syntax.

    as well as whether there are other things I want to do in the $var==1 case but only if $var2!=2.

    That is a different case, and a) requires the separation of the tests; b) is clarified by that separation.

    In the cited case, the artificial separation leads (me) to questions about what was really in the mind of the author when the constructed the code. Questions that serve to confuse rather than clarify; doubt rather than know.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
    "Science is about questioning the status quo. Questioning authority".
    The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.
Re^6: Automatically add all defined functions to your @EXPORT
by Transient (Hermit) on Jun 21, 2005 at 17:09 UTC
    I err on the side of caution (wrt '&&' vs. 'and ) and use
    if ( $var1 == 1 and $var2 == 2 ) { doSomething(); }


    of course, with if's, it all depends on the logic branching outside of that particular if statement. It's not a "set in stone" decision.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-04-16 08:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found