Hm. That's another of those sage pieces of advice that gets quoted far too often, and nearly always out of a correct context.

Debugging and maintenance are quite different things. Although the latter can involve some of the former, it first starts by breaking working code in order to adapt it to new requirements. That is, you do not normally enter maintenance mode until a "working state" has been achieved.

This becomes particularly significant when the working state is achieved at or close to the limits of what is possible--as with many of TheDamian's modules. They rely for the possibility of their operation on being closely coupled to the (internal) features and even quirks of the Perl. As such, they become susceptible not only to breakage through internals changes, but also to the 'fixing' of quirks. More significantly, they require deep understanding of those internals--and how they change over time--for their initial possibility and their continued operation. Unless the maintenance programmer fully grasps their modes of operation in their original form; plus all the internal changes and how they affect the operation; they are hard pressed to be able to keep them working as the internals evolve over time.

There is also a difference between 'clever' for it's own sake; and 'clever' of necessity. When pushing the boundaries of possibility, it is often necessary to clever. The alternative is to achieve nothing.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP PCW It is as I've been saying!(Audio until 20090817)

In reply to Re^7: Inline::Files unopened filehandle errors redux by BrowserUk
in thread Inline::Files unopened filehandle errors redux by NateTut

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.