My single most common error in Smalltalk is to forget to answer the result of a method.  This was a very common error I used to make in C/C++ as well.  In those languages I solved it by never using them again.

In Smalltalk, I changed the method template to include ^result at the end.  Then I disciplined myself always to '''edit''' the template, not just replace the whole thing.  --RonJeffries
----
I'm surprised you had that problem in C/C++. Modern compilers will warn you if you don't return the value that was declared, or if you try to use a result that wasn't declared. -- DaveHarris

''This was long ago, before I gave up C/C++.  They put in that feature for me.  --RonJeffries''

-----
Perl uses the results of the last expression evaluated as the return
value of a subroutine/method.
But often the return value returns on the context (scalar or list) in which the
subroutine/method is invoked.  Every so often...  ''Oops.'' --DaveSmith

-----

FunctionalProgrammingLanguage''''''s tend to have well-defined return statements and in good style, they are quite vital and thus hardly missable. The common thing to return in a block is the last statement's return code. This was probably where it was copied to Perl from.