Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: For clarity and cleanliness, I'd recommend...

by TheDamian (Priest)
on Mar 06, 2005 at 19:29 UTC ( #437076=note: print w/replies, xml ) Need Help??


in reply to Re: For clarity and cleanliness, I'd recommend...
in thread looking for a good idiom: return this if this is true

I agree with you. I would certainly never recommend that people write:
if ($result = thatroutine()) { return $result; }
But, as your while-based variant shows, non-constant assignments in a conditional are always fine if you're declaring the lvalue variable at that point:
if (my $result = thatroutine()) { return $result; }
In such cases, the = must be intentional, since == on a newly-created variable doesn't make any sense.

As for your alternative suggestion, I don't feel it's a clear or as clean as using an if, because the use of a while implies looping behaviour, which the return undermines in a not-entirely-obvious way. That could be especially misleading to subsequent readers of the code if the number of statements in the while block later increases, pushing the return away from the loop keyword it's subverting.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://437076]
help
Chatterbox?
[talexb]: TStanley I'm flying to Vegas in two weeks time. After that flights leaving Vegas and Phoenix are late at night .. I've been hearing that it gets so hot that the air isn't dense enough for planes to take off. Weird. Guess you won't have that problem.
[Corion]: Yay, vacation time now - one week off work (but a Perl workshop in the middle ;)) )
[talexb]: TStanley I just realized that I was in your area for a convention back in April. We were at the high school for the weekend, the one with the long driveway. Nice spot.
[TStanley]: I am heading to Arlington, Virginia next week, then I get to spend an entire week at home. Looking forward to that as I will have spent 7 weeks on the road by the end of next week

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (11)
As of 2017-06-23 14:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (548 votes). Check out past polls.