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