Define "best". In other words, what do you want to optimize for?
Some generic criteria may be:
- Execution speed
- Lines of code needed to use the API
- Learning curve (i.e. how much documentation has to be read and understood to be able to use the API)
- Robustness
- Security
- API sanity (i.e. does it look and behave "perlish" or is the API just a dumb wrapper for a broken C library?)
- Stability of the API (how often did the API change in an incompatible way, how often will it do so in future?)
- Number of external dependencies (does the package need half of CPAN and three different database engines or just the core modules?)
- Little anoyances: Will the package run flawlessly with taint mode and warnings enabled? Does it need a C compiler / C libraries (was and still is a big problem on Windows)? Is it possible to inherit your own class to implement custom behaviour (some CPAN modules offer an OOP interface, but use "private" functions internally, thus preventing clean inheritance)?
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)