Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
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 ( [id://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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1019991]
help
Chatterbox?
and the web crawler heard nothing...

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

    No recent polls found