I usually only take care of code size...
(If I want to make my code more readable I use comment to describe what I'm saying)
Write your flat prog and then try to use subs instead of similar part of the code.
If using a sub reduce the number of lines it's often an obvious good choice.
(With experience you'll see that you'll do it at the design stage,
preventing you from writing more than needed...)
Now, I sometimes make sub from not-so-similar peaces of code
(using a added parampeters to achive sligltly different process on different data)
but it's not usually very good for the readablity.
I remember I wrote long ago a sub (which did and return severals (REALLY DIFFERENT)
things depending on the parameters, I saved some lines but it was an horror to read and debug...)
Ooops I forgot to mention another important use for subroutines : I al so use them to make further modification easier.
I sometimes use sub when it doesn't really reduce my code size but when it enables me to modify the logical function at one place rather at thousand places in the code.
"Trying to be a SMART lamer" (thanx to Merlyn ;-)
In reply to Re: A question about the best way to use subroutines