Please don't include anything in your distribution that uses a CPAN-registered module name. I've been bitten more than once on that, the most memorable being the "Minivend" shopping cart package.

The "Minivend" author started with the attitude you had: he had wanted to make a "turnkey" solution for end users, and needed some modules that perhaps were not commonly installed, so he had included frozen versions of them into his distribution, under the original names.

Well, time passed, and he didn't incorporate the latest version of those modules into his distribution, but it came time for me to install Minivend to test it to see if I wanted to do a column about it. Imagine my horror when Minivend uninstalled my more modern versions of those handful of central modules, and replaced them with his own downrev versions!

I immediately posted a note to his support list and to P5P warning people that "minivend is evil", and got some interesting responses, but mostly the P5P group sided with me: a distribution should not have private versions of public modules under the CPAN-registered name. This leaves him (and you) with two solutions:

  1. Include (as you suggested) a version of the module, but safely tucked away under your own namespace. Like a version of Minivend::Foo::Bar for a module that everyone else knows (or once knew) as Foo::Bar.
  2. Simply list the prerequisites in the Makefile.PL, and let the installer sort it out.
The latter is highly preferred, although the former insulates you from any "upward compatibility" problems, but most modules I've seen only get better, and have sacrificed very few items in the name of backward compatibility.

The "Minivend" author learned his lesson, and now does the latter. I suggest you seriously look at doing the same. Do you really think a site can be self supporting if they can't even install a module or two from the CPAN? There is a support cost to using Open Source software, and part of it includes being able to include components. If they want Microsoft, they know where to get it. {grin}

-- Randal L. Schwartz, Perl hacker


In reply to RE: modules out of the box by merlyn
in thread modules out of the box by knight

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.