in reply to where do you put your subs

My practice is, if I'm writing a script called foo.pl, to write a module called foo.pm. Then all I have in foo.pl is the flow control, which is either a dispatch table or an if / else tree, made up of calls to subroutines in foo.pm. The subs in foo.pm are arranged "by order of appearance" in foo.pl.

I don't claim this is either original or perfect, but it works for me for the following reasons: