So you're going to download a module from Perl's CPAN. Good - you've learnt the first rule which is to re-use code that someone else has written, and NOT write your own. But then you have another conundrum - which of the dozens of modules that look as if they should be suitable should you download - which are reliable and of good quality, and which are, frankly, naff?
You can't measure "Quality". Can't put an objective number on it to rank modules. But you CAN monitor features that you'll find in well written and well maintained modules and measure those, and such a measure will be an INDICATION that a module is likely to be to a high standard. That's been christened
Kwalitee - sounds like quality, but not quite the same! You'll be interested in CPANTS - The Comprehensive Perl Archive Network Testing Service.
The CPANTS service at
http://cpants.perl.org is a testing service which uses automatic criteria to rank CPAN modules. The presence (or otherwise) or readme files, manifests, configuration files, etc is one of the criteria used. Then the presence of tests, a versioning system, POD documentation (for ALL the methods, please!) and POD that compile properly too is measures. A module is scored better if it has "use strict;", and it's also scored higher if it's a prerequisite of someone else's module.
If you're a CPAN contributor, you can of course write your code to get a high Kwalitee rating without it being high quality - that's rather like cheating the rankings for a search engine - and you can even use the Test::Kwalitee module that lets you check out your ranking before you submit. I probably shouldn't even tell you about the guy who has a CPAN module who will, at a price, declare your module as something that his depends on ...
(written 2007-06-06, updated 2007-06-07)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
P219 - Perl - Libraries and Resources [3377] What do I mean when I add things in Perl? - (2011-08-02)
[3101] The week before Christmas - (2010-12-23)
[3009] Expect in Perl - a short explanation and a practical example - (2010-10-22)
[2931] Syncronise - software, trains, and buses. Please! - (2010-08-22)
[2427] Operator overloading - redefining addition and other Perl tricks - (2009-09-27)
[2234] Loading external code into Perl from a nonstandard directory - (2009-06-12)
[2229] Do not re-invent the wheel - use a Perl module - (2009-06-11)
[1865] Debugging and Data::Dumper in Perl - (2008-11-02)
[1863] About dieing and exiting in Perl - (2008-11-01)
[1444] Using English can slow you right down! - (2007-11-25)
[1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
[1235] Outputting numbers as words - MySQL with Perl or PHP - (2007-06-17)
[760] Self help in Perl - (2006-06-14)
[737] Coloured text in a terminal from Perl - (2006-05-29)
[712] Why reinvent the wheel - (2006-05-06)
[358] Use standard Perl modules - (2005-06-25)
[357] Where do Perl modules load from - (2005-06-24)
[112] Avoid the wheel being re-invented by using Perl modules - (2004-11-08)
[86] Talk review - Idiomatic Perl, David Cross - (2004-10-12)
562b
Some other Articles
Asda opening large new store in MelkshamPerl, the substitute operator sBathtubs and pecking birdsfor loop - how it works (Perl, PHP, Java, C, etc)Judging the quality of contributed Perl codeSunday afternoonWhat are factory and singleton classes?Five of the best - pictures from LondonAn update on Perl - where is it going?New Serieses for the summer on TV