Sorry for chipping in on an older thread.

merlyn, very often the only way that you can appreciate an existing module is by trying to reinvent it yourself. You get smacked by the same problems as the module author, and you learn to appreciate his/her response to those problems (or not as the case may be).

A case in point was yet another getopt module that I wrote because none of the existing ones provided quite all the features I wanted (notably the use of argument files). That worked fine until I needed to start having to tweak it for features that existed in the standard modules. I have now gone back to using getopt::long, and adding my stuff by reprocessing @ARGV before extracting the options.

The point is, that I now understand Johan's module and use it more effectively than I would have done otherwise.

I feel pretty ambiguous about this question. On the one hand I'm in favour of rolling my own stuff in personal or low impact scripts. Sure it takes more time, but I'm learning... On the other hand, when it gets to production code, I have to agree with you. The problem isn't so much reinventing stuff (with all the mistakes to be made again) as having to maintain it afterwards.

And I suppose that's where the problem really lies. It's our responsibility to <quote>The Community</quote> to make things as easy for them as possible... by providing guaranteed robust, maintainable code at low cost. But there's another responsibility to explore, understand and innovate in order to extend the robust code base. And in order to do that you need to feel free to step outside the tried'n'true and play by your own rules for a while.


In reply to Re: Re: Where do you want to go today? (a little deeper than CGI.pm) by Tyke
in thread Where do you want to go today? (a little deeper than CGI.pm) by deprecated

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.