|Perl: the Markov chain saw|
My additional comments:
Please be consistent. At least in a given program or series of programs. We all improve over time, please use those gains, but if you use variables like $companyName, or $company_name, or $co_nm please feel free to stick with approximately the same naming standard. This also applies to formatting and general ways of accomplishing given tasks like printing, calling subroutines and so on
If you modify/maintain a program that uses a standard you HATE – please make the choice – re-write the whole thing based upon your standards (the boss will love your time sheet) – or much more reasonably, use the existing ugly standard.
I very much agree that many people believe that all programs should be written so an untrained person can step in and become a programmer – this is wrong Wrong WRONG. Use the language effectively, as you say, use all of the power of the language – skip using arcane little side effects as a method to accomplish anything in your program.
Yes – I have broken all of these rules, sometimes on purpose for fun – like Obfu code. Other times I have broken the rules without thinking, and generally lived to regret it, or more than likely lived to regret the same problem in someone else's code.
Always remember the basic rule : there is nothing so permanent as a temporary fix