X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlmodlib.pod;h=62d249a150022e49ae4f53d39cdced5322b572a3;hb=d57eded6852763e3753285b692dd66ed278e268d;hp=f37279d90ac7a3b8dbeaeeefd26b1941797c0e5a;hpb=b1866b2db57c4aa1ee77325f2658722f6a7befa2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlmodlib.pod b/pod/perlmodlib.pod index f37279d..62d249a 100644 --- a/pod/perlmodlib.pod +++ b/pod/perlmodlib.pod @@ -98,10 +98,6 @@ Compute arithmetic in integer instead of double Request less of something from the compiler -=item lib - -Manipulate @INC at compile time - =item locale Use and avoid POSIX locales for built-in operations @@ -118,6 +114,10 @@ Restrict unsafe operations when compiling Package for overloading perl operations +=item perlio + +Configure C level IO + =item re Alter regular expression behaviour @@ -146,6 +146,10 @@ Predeclare global variable names (obsolete) Control optional warnings +=item warnings::register + +Warnings import function + =back =head2 Standard Modules @@ -220,6 +224,10 @@ Show lexical variables used in functions or files Helper module for CC backend +=item B::Stash + +Show what stashes are loaded + =item B::Terse Walk Perl syntax tree, printing terse info about ops @@ -284,10 +292,6 @@ Wrapper around CPAN.pm without using any XS module Warn of errors (from perspective of caller) -=item Carp::Heavy - -Carp guts - =item Class::Struct Declare struct-like datatypes as Perl classes @@ -316,6 +320,10 @@ Supply object methods for directory handles Provides screen dump of Perl data. +=item Encode + +Character encodings + =item English Use nice English (or awk) names for ugly punctuation variables @@ -436,6 +444,10 @@ Create or remove directory trees Portably perform operations on file names +=item File::Spec::Epoc + +Methods for Epoc file specs + =item File::Spec::Functions Portably perform operations on file names @@ -476,6 +488,10 @@ Keep more files open than the system permits Supply object methods for filehandles +=item Filter::Simple + +Simplified source filtering + =item FindBin Locate directory of original perl script @@ -572,6 +588,10 @@ Module to convert pod files to HTML Objects representing POD input paragraphs, commands, etc. +=item Pod::LaTeX + +Convert Pod data to formatted Latex + =item Pod::Man Convert POD data to formatted *roff input @@ -636,6 +656,10 @@ Run shell commands transparently within perl Load the C socket.h defines and structure manipulators +=item Storable + +Persistency for perl data structures + =item Symbol Manipulate Perl symbols and their names @@ -775,69 +799,90 @@ Most importantly, CPAN includes around a thousand unbundled modules, some of which require a C compiler to build. Major categories of modules are: -=over +=over 4 =item * + Language Extensions and Documentation Tools =item * + Development Support =item * + Operating System Interfaces =item * + Networking, Device Control (modems) and InterProcess Communication =item * + Data Types and Data Type Utilities =item * + Database Interfaces =item * + User Interfaces =item * + Interfaces to / Emulations of Other Programming Languages =item * + File Names, File Systems and File Locking (see also File Handles) =item * + String Processing, Language Text Processing, Parsing, and Searching =item * + Option, Argument, Parameter, and Configuration File Processing =item * + Internationalization and Locale =item * + Authentication, Security, and Encryption =item * + World Wide Web, HTML, HTTP, CGI, MIME =item * + Server and Daemon Utilities =item * + Archiving and Compression =item * + Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing =item * + Mail and Usenet News =item * + Control Flow Utilities (callbacks and exceptions etc) =item * + File Handle and Input/Output Stream Utilities =item * + Miscellaneous Modules =back @@ -845,7 +890,7 @@ Miscellaneous Modules Registered CPAN sites as of this writing include the following. You should try to choose one close to you: -=over +=over 4 =item Africa @@ -1201,6 +1246,12 @@ If adding a new module to a set, follow the original author's standards for naming modules and the interface to methods in those modules. +If developing modules for private internal or project specific use, +that will never be released to the public, then you should ensure +that their names will not clash with any future public module. You +can do this either by using the reserved Local::* category or by +using a category name that includes an underscore like Foo_Corp::*. + To be portable each component of a module name should be limited to 11 characters. If it might be used on MS-DOS then try to ensure each is unique in the first 8 characters. Nested modules make this easier. @@ -1400,18 +1451,28 @@ Don't delete the original .pl file till the new .pm one works! =over 4 -=item Complete applications rarely belong in the Perl Module Library. +=item * + +Complete applications rarely belong in the Perl Module Library. + +=item * -=item Many applications contain some Perl code that could be reused. +Many applications contain some Perl code that could be reused. Help save the world! Share your code in a form that makes it easy to reuse. -=item Break-out the reusable code into one or more separate module files. +=item * + +Break-out the reusable code into one or more separate module files. + +=item * + +Take the opportunity to reconsider and redesign the interfaces. -=item Take the opportunity to reconsider and redesign the interfaces. +=item * -=item In some cases the 'application' can then be reduced to a small +In some cases the 'application' can then be reduced to a small fragment of code built on top of the reusable modules. In these cases the application could invoked as: