CPAN (was Re: [Israel.pm] The future of Perl)
shlomo at cs.haifa.ac.il
Thu Jan 22 09:07:58 PST 2004
On Thu, 22 Jan 2004, Jason Elbaum wrote:
> Here's my problem: How can I possibly make effective use of a library of
> nearly 6000 Perl modules? Especially as I have no way of evaluating the
> quality of a CPANmodule without downloading, installing and testing it?
> Most of the subject categories above overlap, and modules aren't always
> catalogued where I might expect to find them. By the time I figure out
> whether the functionality I need exists in CPAN, and where it is, and
> which version of which module to try, and whether in fact it actually
> does what I need - often I might as well write it myself!
1. Ask on the mailing list. The more users being able to
support you, the luckier you are.
2. The author of the module is many times a sign of quality
or a sign for no quality.
3. by the time you end up needing something which is
available on CPAN, you should also be able to defined some
interface to that functionality (at least for testing if not
for your design up front). Having that interface, use it to
create a wrapper around the various modules you consider,
and run your tests, this should be a good way to see if the
modules supply your needs or not. It is true, though, that
you still need to invest time to understand what is it that
the module does (and sometimes also how) and figure out its
interface which might not always be very well documented.
> Add to that a further problem: I sometimes write Perl code to be
> exported to remote installation sites. I can't necessarily rely on which
> subversion of Perl is available there, let alone expect them to install
> CPAN modules just to run my code. They're users, not sysadmins. Result:
> I rarely use CPAN in my release code.
At that point, you are better off using that code you found
on CPAN as a base for your own code. Fork from that module
and keep maintaining your version of it. The great thing is
that you have something as a model for what you would do or
would do differently. There is no obligation to use anything
from CPAN. It is useful, when the code is good and it works.
Having said that, I believe that there may be some
configurations and setup you can do when packaging your
software to make sure it installs with all the necessary
modules and dependencies. You might want to ask on the list
how to do that and what limitations you are facing.
shlomo at cs.haifa.ac.il
More information about the Perl