Due to circumstances beyond my control I have been home since January and since that time I have been writing a lot of Perl and really digging deeper into Unix and the whole LAMP thing.
Lately I have been tearing down sheetrock and spackling because we're selling our house (because we want to) and I have gotten to thinking about the two not so dissimilar processes.
I frustrate easily with Perl because I am under the odd idea that I should get it right the first time. I basically write this sort of boring, obvious, cautious code in the hopes that in doing so I will have perfect code on the first shot.
While spackling my walls I realized quickly that:

There's more than one way to do it
You cannot possibly do it all on the first shot
It will never be perfect, but that's OK because that's what paint is for!

Some Analogies

Hanging sheet rock == use warnings; use strict;
Taping == choices like to sub or not to sub. The choises you make here will absolutely have an impact on what happens next
Debugging == Sponging or Sanding:
Sponging is cleaner and can let you "fix" things but requires more elbow grease and you have to wait to see the finished product.

Sanding is messy but really fast. You can use certain tools to make it cleaner but in the end there will be a mess to clean up but you'll be ready to paint WAY faster.

So what I take away from spackling is a more layered approach to coding. making sure that my foundation (or first run) is good enough so that I don't have to break out the sander just to get it good enough for the second coat. That good debugging makes good code. Finally, that making something flawless isn't the most important thing, making something work is (or having straight walls with no weird bumps or waves on it).
--
ellem@optonline.net
There's more than one way to do it, but only some of them actually work.

In reply to Spackle & Perl by ellem

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.