Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Perl: last evaluated value as a returned value for a subroutine. See inside

by sundialsvc4 (Abbot)
on Feb 21, 2013 at 17:38 UTC ( #1019991=note: print w/ replies, xml ) Need Help??


in reply to Re: Perl: last evaluated value as a returned value for a subroutine. See inside
in thread Perl: last evaluated value as a returned value for a subroutine. See inside

Very strongly agree.

The problem with a more “lackadaisical” coding style is that it is not immediately apparent what the actual return-value will be ... let alone what it was intended to be.   Even in the case at bar, we see this:   Perl did exactly what it is programmed to do, but the author mistook what that would turn out to be.   (The next person to come along, now frantically trying to find the obscure bug that is torching a production system, is even more “sunk.”)

If a function returns a value, you should always IMHO return $some_value;.   If the function makes decisions such that it could have more than one “intended result,” put an appropriate return statement at each point.   Not only is there no good reason to let control “dribble down” to the endpoint of the routine, but a subtle and unexpected bug might be introduced if additional code were added at the end of the routine.   Code for clarity.   Hair-follicles are a precious thing.


Comment on Re^2: Perl: last evaluated value as a returned value for a subroutine. See inside

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2014-12-22 03:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (110 votes), past polls