In an effort to avoid organising YAPC::Europe, I went through the 126
modules with documentation in Perl 5.6.0's lib/ directory and
documented what kind of interface they provided. Not all of them
follow perlstyle, and I think perl6's standard libraries should. But
anyway, here goes...

BTW I'm not doing too much analysis on this at the moment, and the raw
text file used to generate this is attached. Anyone?

Here are a few general notes first:

IPC::Msg # snd and rcv methods should be send and receive instead
POSIX # creat? creat? fools!
Pod::Usage # maybe pod2usage should be pod_to_usage?
Sys::Syslog # shouldn't this be called Sys::Log?


* How many modules have an OO interface?

     45 OO


* How many support class methods?

      5 class methods


* How many modules export functions

     46 functions(ALL)
        Export all functions by default

     11 functions(NONE)
        Export no functions by default
        This is probably perlstyle

      4 functions(SOME)
        Export some functions by default

      6 EXPORT_TAGS
        Use EXPORT_TAGS


* What kind of naming scheme are the functions or modules?

     34 nocapssingle
        Single words in lower caps

     29 nocapshere
        Mulitple words joined together in lower caps

     27 no_caps_here
        Multiple words joined together with underscores in lower caps
        (this is perlstyle)

      4 Nocapshere
        Multiple words joined together with an initial upper caps

      2 NoCapsHere
        Multiple words joined together with the first letter of words
        being upper caps (Java style?)

      2 NO_CAPS_HERE
        Capitals with all uppercase

      1 noCapsHere
        NoCapsHere but with initial lower case

      1 [Nn]oCapsHere 
        Inconsistent naming scheme


* How many modules export datatypes?

      6 scalars
      1 hash
      1 arrays


* How many do magic stuff?

     10 magic


* How many do all their stuff during the 'use' call?

      6 use Module LIST
      1 use Module (source filter)
      1 use Module


* How many use tie as a primary interface?

      3 tie


* How many must you subclass to do anything?

      3 must subclass


* How many are deprecated?

      3 deprecated
        Why are these still around?


* How many have a command-line interface?

      2 CLI


* How many overload ""?

      1 overloads ""


* How many are interactive?
      1 interactive

Leon
-- 
Leon Brocard.............................http://www.astray.com/
yapc::Europe - September 22-24 London - http://yapc.org/Europe/

... Error 404: ENODOCS
AnyDBM_File - use Module
AutoLoader - use Module LIST
AutoSplit - functions (ALL), no_caps_here
B - functions (ALL), nocapshere
Benchmark - functions (SOME)
ByteLoader - use Module (source filter)
CGI - functions (NONE), OO, EXPORT_TAGS, no_caps_here
CGI::Apache - deprecated
CGI::Carp - functions (some), noCapsHere
CGI::Cookie - OO, overloads "", class methods, nocapssingle
CGI::Fast - functions (NONE), OO, EXPORT_TAGS, no_caps_here
CGI::Pretty - functions (NONE), OO, EXPORT_TAGS, no_caps_here
CGI::Push - functions (NONE), OO, EXPORT_TAGS, no_caps_here
CGI::Switch - deprecated
CPAN - interactive, functions (ALL), class methods, nocapssingle
Carp - functions (ALL), nocpassingle
Class::Struct - functions (ALL), nocapssingle
Config - hash, functions (NONE), no_caps_here
Cwd - functions (SOME), nocapshere
DB - must subclass, no_caps_here
DB_File - tie, OO, no_caps_here
Data::Dumper - functions (ALL), class methods, OO, Nocapshere
Devel::DProf - CLI
Devel::Peek - functions (SOME), NoCapsHere
Devel::SelfStubber - class methods, nocapssingle
DirHandle - OO, nocapssingle
Dumpvalue - OO, [Nn]oCapsHere 
DynaLoader - functions (ALL), no_caps_here
English - scalars, NO_CAPS_HERE
Env - use Module LIST, scalars, arrays
Errno - use Module LIST, EXPORT_TAGS, scalars
Exporter - magic
ExtUtils
Fatal - use Module LIST
Fcntl - use Module LIST, EXPORT_TAGS, scalars
File::Basename - functions (ALL), no_caps_here
File::CheckTree - functions (ALL), nocapssingle
File::Compare - functions (ALL), nocapssingle
File::Copy - functions (ALL), nocapssingle
File::DosGlob - functions (NONE), nocapssingle
File::Find - functions (ALL), no_caps_here
File::Glob - functions (NONE), nocapssingle
File::Path - functions (ALL), nocapshere
File::Spec - functions (ALL), class methods, nocapshere
File::stat - OO, nocapssingle
FileCache - functions (ALL)
FileHandle - OO, nocapshere
FindBin - scalars, Nocapshere
GDBM_File - tie, OO, no_caps_here
Getopt::Long - functions (ALL), NoCapsHere
Getopt::Std - functions(ALL), nocapshere
I18N::Collate - deprecated, functions(ALL), OO
IO::Dir - OO, nocapshere
IO::File - OO, nocapshere
IO::Handle - OO, nocapshere
IO::Pipe - OO, nocapssingle
IO::Poll - OO, nocapssingle
IO::Seekable - must subclass, OO, nocapssingle
IO::Select - OO, no_caps_here
IO::Socket - OO, nocapshere
IO::Socket::INET - OO, nocapshere
IO::Socket::UNIX - OO, nocapshere
IPC::Msg - OO, nocapssingle, # snd and rcv methods should be send and receive instead
IPC::Open2 - functions(ALL), nocapssingle
IPC::Open3 - functions(ALL), nocapssingle
IPC::Semaphore - OO, nocapshere
IPC::SysV - use Module LIST, scalars, NO_CAPS_HERE
Math::BigFloat - OO, nocapshere
Math::BigInt - OO, nocapshere
Math::Complex - OO, nocapshere
Math::Trig - functions(ALL), no_caps_here
Net::Ping - OO, nocapshere
Net::hostent - functions(ALL), nocapshere
Net::netent - functions(ALL), nocapshere
Net::protoent - functions(ALL), nocapshere
Net::servent - functions(ALL), nocapshere
O - CLI
Opcode - functions(NONE), no_caps_here
POSIX - functions(NONE), nocapshere, # creat? creat? fools!
Pod::Checker - functions(ALL), OO, no_caps_here
Pod::Find - functions(NONE), no_caps_here
Pod::Html - functions(NONE), nocapshere
Pod::InputObjects - OO, no_caps_here
Pod::Man - OO, no_caps_here
Pod::ParseUtils - OO, nocapssingle
Pod::Parser - must subclass, no_caps_here
Pod::Plainer - OO, no_caps_here
Pod::Select - functions(ALL), OO, no_caps_here
Pod::Text - OO, no_caps_here
Pod::Text::Color - OO, no_caps_here
Pod::Text::Termcap - OO, no_caps_here
Pod::Usage - functions(ALL), nocapssingle, # maybe pod2usage should be pod_to_usage?
SDBM_File - tie, OO, no_caps_here
Safe - OO, no_caps_here
Search::Dict - functions(ALL), nocapssingle
SelectSaver - OO
SelfLoader - magic
Shell.pm - magic
Socket - functions(ALL), nocapshere
Symbol - functions(ALL), nocapshere
Sys::Hostname - functions(ALL), nocapshere
Sys::Syslog - functions(ALL), nocapshere, # shouldn't this be called Sys::Log?
Term::ANSIColor - functions(ALL), nocapssingle
Term::Cap - OO, Nocapshere
Term::Complete - functions(ALL), Nocapshere
Term::ReadLine - OO, nocapshere
Test - OO, nocapssingle
Test::Harness - functions(ALL), nocapshere
Text::Abbrev - functions(ALL), nocapssingle
Text::ParseWords - functions(ALL), no_caps_single
Text::Soundex - functions(ALL), nocapssingle
Text::Tabs - functions(ALL), nocapssingle
Text::Wrap - functions(ALL), nocapssingle
Tie::Array - magic
Tie::Handle - magic
Tie::Hash - magic
Tie::RefHash - magic
Tie::Scalar - magic
Tie::SubstrHash - magic
Time::Local - functions(ALL), nocapssingle
Time::gmtime - functions(ALL), nocapssingle
Time::localtime - functions(ALL), nocapssingl
UNIVERSAL - OO, nocapssingle
User::grent - functions(ALL), nocapssingle
User::pwent - functions(ALL), nocapssingle
XSLoader - magic

Reply via email to