http://www.perlmonks.org?node_id=1019991


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.