1*0Sstevel@tonic-gate=for maintainers 2*0Sstevel@tonic-gateGenerated by perlmodlib.PL -- DO NOT EDIT! 3*0Sstevel@tonic-gate 4*0Sstevel@tonic-gate=head1 NAME 5*0Sstevel@tonic-gate 6*0Sstevel@tonic-gateperlmodlib - constructing new Perl modules and finding existing ones 7*0Sstevel@tonic-gate 8*0Sstevel@tonic-gate=head1 THE PERL MODULE LIBRARY 9*0Sstevel@tonic-gate 10*0Sstevel@tonic-gateMany modules are included in the Perl distribution. These are described 11*0Sstevel@tonic-gatebelow, and all end in F<.pm>. You may discover compiled library 12*0Sstevel@tonic-gatefiles (usually ending in F<.so>) or small pieces of modules to be 13*0Sstevel@tonic-gateautoloaded (ending in F<.al>); these were automatically generated 14*0Sstevel@tonic-gateby the installation process. You may also discover files in the 15*0Sstevel@tonic-gatelibrary directory that end in either F<.pl> or F<.ph>. These are 16*0Sstevel@tonic-gateold libraries supplied so that old programs that use them still 17*0Sstevel@tonic-gaterun. The F<.pl> files will all eventually be converted into standard 18*0Sstevel@tonic-gatemodules, and the F<.ph> files made by B<h2ph> will probably end up 19*0Sstevel@tonic-gateas extension modules made by B<h2xs>. (Some F<.ph> values may 20*0Sstevel@tonic-gatealready be available through the POSIX, Errno, or Fcntl modules.) 21*0Sstevel@tonic-gateThe B<pl2pm> file in the distribution may help in your conversion, 22*0Sstevel@tonic-gatebut it's just a mechanical process and therefore far from bulletproof. 23*0Sstevel@tonic-gate 24*0Sstevel@tonic-gate=head2 Pragmatic Modules 25*0Sstevel@tonic-gate 26*0Sstevel@tonic-gateThey work somewhat like compiler directives (pragmata) in that they 27*0Sstevel@tonic-gatetend to affect the compilation of your program, and thus will usually 28*0Sstevel@tonic-gatework well only when used within a C<use>, or C<no>. Most of these 29*0Sstevel@tonic-gateare lexically scoped, so an inner BLOCK may countermand them 30*0Sstevel@tonic-gateby saying: 31*0Sstevel@tonic-gate 32*0Sstevel@tonic-gate no integer; 33*0Sstevel@tonic-gate no strict 'refs'; 34*0Sstevel@tonic-gate no warnings; 35*0Sstevel@tonic-gate 36*0Sstevel@tonic-gatewhich lasts until the end of that BLOCK. 37*0Sstevel@tonic-gate 38*0Sstevel@tonic-gateSome pragmas are lexically scoped--typically those that affect the 39*0Sstevel@tonic-gateC<$^H> hints variable. Others affect the current package instead, 40*0Sstevel@tonic-gatelike C<use vars> and C<use subs>, which allow you to predeclare a 41*0Sstevel@tonic-gatevariables or subroutines within a particular I<file> rather than 42*0Sstevel@tonic-gatejust a block. Such declarations are effective for the entire file 43*0Sstevel@tonic-gatefor which they were declared. You cannot rescind them with C<no 44*0Sstevel@tonic-gatevars> or C<no subs>. 45*0Sstevel@tonic-gate 46*0Sstevel@tonic-gateThe following pragmas are defined (and have their own documentation). 47*0Sstevel@tonic-gate 48*0Sstevel@tonic-gate=over 12 49*0Sstevel@tonic-gate 50*0Sstevel@tonic-gate=item attributes 51*0Sstevel@tonic-gate 52*0Sstevel@tonic-gateGet/set subroutine or variable attributes 53*0Sstevel@tonic-gate 54*0Sstevel@tonic-gate=item attrs 55*0Sstevel@tonic-gate 56*0Sstevel@tonic-gateSet/get attributes of a subroutine (deprecated) 57*0Sstevel@tonic-gate 58*0Sstevel@tonic-gate=item autouse 59*0Sstevel@tonic-gate 60*0Sstevel@tonic-gatePostpone load of modules until a function is used 61*0Sstevel@tonic-gate 62*0Sstevel@tonic-gate=item base 63*0Sstevel@tonic-gate 64*0Sstevel@tonic-gateEstablish IS-A relationship with base class at compile time 65*0Sstevel@tonic-gate 66*0Sstevel@tonic-gate=item bigint 67*0Sstevel@tonic-gate 68*0Sstevel@tonic-gateTransparent BigInteger support for Perl 69*0Sstevel@tonic-gate 70*0Sstevel@tonic-gate=item bignum 71*0Sstevel@tonic-gate 72*0Sstevel@tonic-gateTransparent BigNumber support for Perl 73*0Sstevel@tonic-gate 74*0Sstevel@tonic-gate=item bigrat 75*0Sstevel@tonic-gate 76*0Sstevel@tonic-gateTransparent BigNumber/BigRational support for Perl 77*0Sstevel@tonic-gate 78*0Sstevel@tonic-gate=item blib 79*0Sstevel@tonic-gate 80*0Sstevel@tonic-gateUse MakeMaker's uninstalled version of a package 81*0Sstevel@tonic-gate 82*0Sstevel@tonic-gate=item bytes 83*0Sstevel@tonic-gate 84*0Sstevel@tonic-gateForce byte semantics rather than character semantics 85*0Sstevel@tonic-gate 86*0Sstevel@tonic-gate=item charnames 87*0Sstevel@tonic-gate 88*0Sstevel@tonic-gateDefine character names for C<\N{named}> string literal escapes 89*0Sstevel@tonic-gate 90*0Sstevel@tonic-gate=item constant 91*0Sstevel@tonic-gate 92*0Sstevel@tonic-gateDeclare constants 93*0Sstevel@tonic-gate 94*0Sstevel@tonic-gate=item diagnostics 95*0Sstevel@tonic-gate 96*0Sstevel@tonic-gateProduce verbose warning diagnostics 97*0Sstevel@tonic-gate 98*0Sstevel@tonic-gate=item encoding 99*0Sstevel@tonic-gate 100*0Sstevel@tonic-gateAllows you to write your script in non-ascii or non-utf8 101*0Sstevel@tonic-gate 102*0Sstevel@tonic-gate=item fields 103*0Sstevel@tonic-gate 104*0Sstevel@tonic-gateCompile-time class fields 105*0Sstevel@tonic-gate 106*0Sstevel@tonic-gate=item filetest 107*0Sstevel@tonic-gate 108*0Sstevel@tonic-gateControl the filetest permission operators 109*0Sstevel@tonic-gate 110*0Sstevel@tonic-gate=item if 111*0Sstevel@tonic-gate 112*0Sstevel@tonic-gateC<use> a Perl module if a condition holds 113*0Sstevel@tonic-gate 114*0Sstevel@tonic-gate=item integer 115*0Sstevel@tonic-gate 116*0Sstevel@tonic-gateUse integer arithmetic instead of floating point 117*0Sstevel@tonic-gate 118*0Sstevel@tonic-gate=item less 119*0Sstevel@tonic-gate 120*0Sstevel@tonic-gateRequest less of something from the compiler 121*0Sstevel@tonic-gate 122*0Sstevel@tonic-gate=item lib 123*0Sstevel@tonic-gate 124*0Sstevel@tonic-gateManipulate @INC at compile time 125*0Sstevel@tonic-gate 126*0Sstevel@tonic-gate=item locale 127*0Sstevel@tonic-gate 128*0Sstevel@tonic-gateUse and avoid POSIX locales for built-in operations 129*0Sstevel@tonic-gate 130*0Sstevel@tonic-gate=item open 131*0Sstevel@tonic-gate 132*0Sstevel@tonic-gateSet default PerlIO layers for input and output 133*0Sstevel@tonic-gate 134*0Sstevel@tonic-gate=item ops 135*0Sstevel@tonic-gate 136*0Sstevel@tonic-gateRestrict unsafe operations when compiling 137*0Sstevel@tonic-gate 138*0Sstevel@tonic-gate=item overload 139*0Sstevel@tonic-gate 140*0Sstevel@tonic-gatePackage for overloading perl operations 141*0Sstevel@tonic-gate 142*0Sstevel@tonic-gate=item re 143*0Sstevel@tonic-gate 144*0Sstevel@tonic-gateAlter regular expression behaviour 145*0Sstevel@tonic-gate 146*0Sstevel@tonic-gate=item sigtrap 147*0Sstevel@tonic-gate 148*0Sstevel@tonic-gateEnable simple signal handling 149*0Sstevel@tonic-gate 150*0Sstevel@tonic-gate=item sort 151*0Sstevel@tonic-gate 152*0Sstevel@tonic-gateControl sort() behaviour 153*0Sstevel@tonic-gate 154*0Sstevel@tonic-gate=item strict 155*0Sstevel@tonic-gate 156*0Sstevel@tonic-gateRestrict unsafe constructs 157*0Sstevel@tonic-gate 158*0Sstevel@tonic-gate=item subs 159*0Sstevel@tonic-gate 160*0Sstevel@tonic-gatePredeclare sub names 161*0Sstevel@tonic-gate 162*0Sstevel@tonic-gate=item threads 163*0Sstevel@tonic-gate 164*0Sstevel@tonic-gatePerl extension allowing use of interpreter based threads from perl 165*0Sstevel@tonic-gate 166*0Sstevel@tonic-gate=item threads::shared 167*0Sstevel@tonic-gate 168*0Sstevel@tonic-gatePerl extension for sharing data structures between threads 169*0Sstevel@tonic-gate 170*0Sstevel@tonic-gate=item utf8 171*0Sstevel@tonic-gate 172*0Sstevel@tonic-gateEnable/disable UTF-8 (or UTF-EBCDIC) in source code 173*0Sstevel@tonic-gate 174*0Sstevel@tonic-gate=item vars 175*0Sstevel@tonic-gate 176*0Sstevel@tonic-gatePredeclare global variable names (obsolete) 177*0Sstevel@tonic-gate 178*0Sstevel@tonic-gate=item vmsish 179*0Sstevel@tonic-gate 180*0Sstevel@tonic-gateControl VMS-specific language features 181*0Sstevel@tonic-gate 182*0Sstevel@tonic-gate=item warnings 183*0Sstevel@tonic-gate 184*0Sstevel@tonic-gateControl optional warnings 185*0Sstevel@tonic-gate 186*0Sstevel@tonic-gate=item warnings::register 187*0Sstevel@tonic-gate 188*0Sstevel@tonic-gateWarnings import function 189*0Sstevel@tonic-gate 190*0Sstevel@tonic-gate=back 191*0Sstevel@tonic-gate 192*0Sstevel@tonic-gate=head2 Standard Modules 193*0Sstevel@tonic-gate 194*0Sstevel@tonic-gateStandard, bundled modules are all expected to behave in a well-defined 195*0Sstevel@tonic-gatemanner with respect to namespace pollution because they use the 196*0Sstevel@tonic-gateExporter module. See their own documentation for details. 197*0Sstevel@tonic-gate 198*0Sstevel@tonic-gateIt's possible that not all modules listed below are installed on your 199*0Sstevel@tonic-gatesystem. For example, the GDBM_File module will not be installed if you 200*0Sstevel@tonic-gatedon't have the gdbm library. 201*0Sstevel@tonic-gate 202*0Sstevel@tonic-gate=over 12 203*0Sstevel@tonic-gate 204*0Sstevel@tonic-gate=item AnyDBM_File 205*0Sstevel@tonic-gate 206*0Sstevel@tonic-gateProvide framework for multiple DBMs 207*0Sstevel@tonic-gate 208*0Sstevel@tonic-gate=item Attribute::Handlers 209*0Sstevel@tonic-gate 210*0Sstevel@tonic-gateSimpler definition of attribute handlers 211*0Sstevel@tonic-gate 212*0Sstevel@tonic-gate=item AutoLoader 213*0Sstevel@tonic-gate 214*0Sstevel@tonic-gateLoad subroutines only on demand 215*0Sstevel@tonic-gate 216*0Sstevel@tonic-gate=item AutoSplit 217*0Sstevel@tonic-gate 218*0Sstevel@tonic-gateSplit a package for autoloading 219*0Sstevel@tonic-gate 220*0Sstevel@tonic-gate=item B 221*0Sstevel@tonic-gate 222*0Sstevel@tonic-gateThe Perl Compiler 223*0Sstevel@tonic-gate 224*0Sstevel@tonic-gate=item B::Asmdata 225*0Sstevel@tonic-gate 226*0Sstevel@tonic-gateAutogenerated data about Perl ops, used to generate bytecode 227*0Sstevel@tonic-gate 228*0Sstevel@tonic-gate=item B::Assembler 229*0Sstevel@tonic-gate 230*0Sstevel@tonic-gateAssemble Perl bytecode 231*0Sstevel@tonic-gate 232*0Sstevel@tonic-gate=item B::Bblock 233*0Sstevel@tonic-gate 234*0Sstevel@tonic-gateWalk basic blocks 235*0Sstevel@tonic-gate 236*0Sstevel@tonic-gate=item B::Bytecode 237*0Sstevel@tonic-gate 238*0Sstevel@tonic-gatePerl compiler's bytecode backend 239*0Sstevel@tonic-gate 240*0Sstevel@tonic-gate=item B::C 241*0Sstevel@tonic-gate 242*0Sstevel@tonic-gatePerl compiler's C backend 243*0Sstevel@tonic-gate 244*0Sstevel@tonic-gate=item B::CC 245*0Sstevel@tonic-gate 246*0Sstevel@tonic-gatePerl compiler's optimized C translation backend 247*0Sstevel@tonic-gate 248*0Sstevel@tonic-gate=item B::Concise 249*0Sstevel@tonic-gate 250*0Sstevel@tonic-gateWalk Perl syntax tree, printing concise info about ops 251*0Sstevel@tonic-gate 252*0Sstevel@tonic-gate=item B::Debug 253*0Sstevel@tonic-gate 254*0Sstevel@tonic-gateWalk Perl syntax tree, printing debug info about ops 255*0Sstevel@tonic-gate 256*0Sstevel@tonic-gate=item B::Deparse 257*0Sstevel@tonic-gate 258*0Sstevel@tonic-gatePerl compiler backend to produce perl code 259*0Sstevel@tonic-gate 260*0Sstevel@tonic-gate=item B::Disassembler 261*0Sstevel@tonic-gate 262*0Sstevel@tonic-gateDisassemble Perl bytecode 263*0Sstevel@tonic-gate 264*0Sstevel@tonic-gate=item B::Lint 265*0Sstevel@tonic-gate 266*0Sstevel@tonic-gatePerl lint 267*0Sstevel@tonic-gate 268*0Sstevel@tonic-gate=item B::Showlex 269*0Sstevel@tonic-gate 270*0Sstevel@tonic-gateShow lexical variables used in functions or files 271*0Sstevel@tonic-gate 272*0Sstevel@tonic-gate=item B::Stackobj 273*0Sstevel@tonic-gate 274*0Sstevel@tonic-gateHelper module for CC backend 275*0Sstevel@tonic-gate 276*0Sstevel@tonic-gate=item B::Stash 277*0Sstevel@tonic-gate 278*0Sstevel@tonic-gateShow what stashes are loaded 279*0Sstevel@tonic-gate 280*0Sstevel@tonic-gate=item B::Terse 281*0Sstevel@tonic-gate 282*0Sstevel@tonic-gateWalk Perl syntax tree, printing terse info about ops 283*0Sstevel@tonic-gate 284*0Sstevel@tonic-gate=item B::Xref 285*0Sstevel@tonic-gate 286*0Sstevel@tonic-gateGenerates cross reference reports for Perl programs 287*0Sstevel@tonic-gate 288*0Sstevel@tonic-gate=item Benchmark 289*0Sstevel@tonic-gate 290*0Sstevel@tonic-gateBenchmark running times of Perl code 291*0Sstevel@tonic-gate 292*0Sstevel@tonic-gate=item ByteLoader 293*0Sstevel@tonic-gate 294*0Sstevel@tonic-gateLoad byte compiled perl code 295*0Sstevel@tonic-gate 296*0Sstevel@tonic-gate=item CGI 297*0Sstevel@tonic-gate 298*0Sstevel@tonic-gateSimple Common Gateway Interface Class 299*0Sstevel@tonic-gate 300*0Sstevel@tonic-gate=item CGI::Apache 301*0Sstevel@tonic-gate 302*0Sstevel@tonic-gateBackward compatibility module for CGI.pm 303*0Sstevel@tonic-gate 304*0Sstevel@tonic-gate=item CGI::Carp 305*0Sstevel@tonic-gate 306*0Sstevel@tonic-gateCGI routines for writing to the HTTPD (or other) error log 307*0Sstevel@tonic-gate 308*0Sstevel@tonic-gate=item CGI::Cookie 309*0Sstevel@tonic-gate 310*0Sstevel@tonic-gateInterface to Netscape Cookies 311*0Sstevel@tonic-gate 312*0Sstevel@tonic-gate=item CGI::Fast 313*0Sstevel@tonic-gate 314*0Sstevel@tonic-gateCGI Interface for Fast CGI 315*0Sstevel@tonic-gate 316*0Sstevel@tonic-gate=item CGI::Pretty 317*0Sstevel@tonic-gate 318*0Sstevel@tonic-gateModule to produce nicely formatted HTML code 319*0Sstevel@tonic-gate 320*0Sstevel@tonic-gate=item CGI::Push 321*0Sstevel@tonic-gate 322*0Sstevel@tonic-gateSimple Interface to Server Push 323*0Sstevel@tonic-gate 324*0Sstevel@tonic-gate=item CGI::Switch 325*0Sstevel@tonic-gate 326*0Sstevel@tonic-gateBackward compatibility module for defunct CGI::Switch 327*0Sstevel@tonic-gate 328*0Sstevel@tonic-gate=item CGI::Util 329*0Sstevel@tonic-gate 330*0Sstevel@tonic-gateInternal utilities used by CGI module 331*0Sstevel@tonic-gate 332*0Sstevel@tonic-gate=item CPAN 333*0Sstevel@tonic-gate 334*0Sstevel@tonic-gateQuery, download and build perl modules from CPAN sites 335*0Sstevel@tonic-gate 336*0Sstevel@tonic-gate=item CPAN::FirstTime 337*0Sstevel@tonic-gate 338*0Sstevel@tonic-gateUtility for CPAN::Config file Initialization 339*0Sstevel@tonic-gate 340*0Sstevel@tonic-gate=item CPAN::Nox 341*0Sstevel@tonic-gate 342*0Sstevel@tonic-gateWrapper around CPAN.pm without using any XS module 343*0Sstevel@tonic-gate 344*0Sstevel@tonic-gate=item Carp 345*0Sstevel@tonic-gate 346*0Sstevel@tonic-gateWarn of errors (from perspective of caller) 347*0Sstevel@tonic-gate 348*0Sstevel@tonic-gate=item Carp::Heavy 349*0Sstevel@tonic-gate 350*0Sstevel@tonic-gateNo user serviceable parts inside 351*0Sstevel@tonic-gate 352*0Sstevel@tonic-gate=item Class::ISA 353*0Sstevel@tonic-gate 354*0Sstevel@tonic-gateReport the search path for a class's ISA tree 355*0Sstevel@tonic-gate 356*0Sstevel@tonic-gate=item Class::Struct 357*0Sstevel@tonic-gate 358*0Sstevel@tonic-gateDeclare struct-like datatypes as Perl classes 359*0Sstevel@tonic-gate 360*0Sstevel@tonic-gate=item Config 361*0Sstevel@tonic-gate 362*0Sstevel@tonic-gateAccess Perl configuration information 363*0Sstevel@tonic-gate 364*0Sstevel@tonic-gate=item Cwd 365*0Sstevel@tonic-gate 366*0Sstevel@tonic-gateGet pathname of current working directory 367*0Sstevel@tonic-gate 368*0Sstevel@tonic-gate=item DB 369*0Sstevel@tonic-gate 370*0Sstevel@tonic-gateProgrammatic interface to the Perl debugging API (draft, subject to 371*0Sstevel@tonic-gate 372*0Sstevel@tonic-gate=item DB_File 373*0Sstevel@tonic-gate 374*0Sstevel@tonic-gatePerl5 access to Berkeley DB version 1.x 375*0Sstevel@tonic-gate 376*0Sstevel@tonic-gate=item Data::Dumper 377*0Sstevel@tonic-gate 378*0Sstevel@tonic-gateStringified perl data structures, suitable for both printing and C<eval> 379*0Sstevel@tonic-gate 380*0Sstevel@tonic-gate=item Devel::DProf 381*0Sstevel@tonic-gate 382*0Sstevel@tonic-gateA Perl code profiler 383*0Sstevel@tonic-gate 384*0Sstevel@tonic-gate=item Devel::PPPort 385*0Sstevel@tonic-gate 386*0Sstevel@tonic-gatePerl/Pollution/Portability 387*0Sstevel@tonic-gate 388*0Sstevel@tonic-gate=item Devel::Peek 389*0Sstevel@tonic-gate 390*0Sstevel@tonic-gateA data debugging tool for the XS programmer 391*0Sstevel@tonic-gate 392*0Sstevel@tonic-gate=item Devel::SelfStubber 393*0Sstevel@tonic-gate 394*0Sstevel@tonic-gateGenerate stubs for a SelfLoading module 395*0Sstevel@tonic-gate 396*0Sstevel@tonic-gate=item Digest 397*0Sstevel@tonic-gate 398*0Sstevel@tonic-gateModules that calculate message digests 399*0Sstevel@tonic-gate 400*0Sstevel@tonic-gate=item Digest::MD5 401*0Sstevel@tonic-gate 402*0Sstevel@tonic-gatePerl interface to the MD5 Algorithm 403*0Sstevel@tonic-gate 404*0Sstevel@tonic-gate=item Digest::base 405*0Sstevel@tonic-gate 406*0Sstevel@tonic-gateDigest base class 407*0Sstevel@tonic-gate 408*0Sstevel@tonic-gate=item DirHandle 409*0Sstevel@tonic-gate 410*0Sstevel@tonic-gateSupply object methods for directory handles 411*0Sstevel@tonic-gate 412*0Sstevel@tonic-gate=item Dumpvalue 413*0Sstevel@tonic-gate 414*0Sstevel@tonic-gateProvides screen dump of Perl data. 415*0Sstevel@tonic-gate 416*0Sstevel@tonic-gate=item DynaLoader 417*0Sstevel@tonic-gate 418*0Sstevel@tonic-gateDynamically load C libraries into Perl code 419*0Sstevel@tonic-gate 420*0Sstevel@tonic-gate=item Encode 421*0Sstevel@tonic-gate 422*0Sstevel@tonic-gateCharacter encodings 423*0Sstevel@tonic-gate 424*0Sstevel@tonic-gate=item Encode::Alias 425*0Sstevel@tonic-gate 426*0Sstevel@tonic-gateAlias definitions to encodings 427*0Sstevel@tonic-gate 428*0Sstevel@tonic-gate=item Encode::Byte 429*0Sstevel@tonic-gate 430*0Sstevel@tonic-gateSingle Byte Encodings 431*0Sstevel@tonic-gate 432*0Sstevel@tonic-gate=item Encode::CJKConstants 433*0Sstevel@tonic-gate 434*0Sstevel@tonic-gateInternally used by Encode::??::ISO_2022_* 435*0Sstevel@tonic-gate 436*0Sstevel@tonic-gate=item Encode::CN 437*0Sstevel@tonic-gate 438*0Sstevel@tonic-gateChina-based Chinese Encodings 439*0Sstevel@tonic-gate 440*0Sstevel@tonic-gate=item Encode::CN::HZ 441*0Sstevel@tonic-gate 442*0Sstevel@tonic-gateInternally used by Encode::CN 443*0Sstevel@tonic-gate 444*0Sstevel@tonic-gate=item Encode::Config 445*0Sstevel@tonic-gate 446*0Sstevel@tonic-gateInternally used by Encode 447*0Sstevel@tonic-gate 448*0Sstevel@tonic-gate=item Encode::EBCDIC 449*0Sstevel@tonic-gate 450*0Sstevel@tonic-gateEBCDIC Encodings 451*0Sstevel@tonic-gate 452*0Sstevel@tonic-gate=item Encode::Encoder 453*0Sstevel@tonic-gate 454*0Sstevel@tonic-gateObject Oriented Encoder 455*0Sstevel@tonic-gate 456*0Sstevel@tonic-gate=item Encode::Encoding 457*0Sstevel@tonic-gate 458*0Sstevel@tonic-gateEncode Implementation Base Class 459*0Sstevel@tonic-gate 460*0Sstevel@tonic-gate=item Encode::Guess 461*0Sstevel@tonic-gate 462*0Sstevel@tonic-gateGuesses encoding from data 463*0Sstevel@tonic-gate 464*0Sstevel@tonic-gate=item Encode::JP 465*0Sstevel@tonic-gate 466*0Sstevel@tonic-gateJapanese Encodings 467*0Sstevel@tonic-gate 468*0Sstevel@tonic-gate=item Encode::JP::H2Z 469*0Sstevel@tonic-gate 470*0Sstevel@tonic-gateInternally used by Encode::JP::2022_JP* 471*0Sstevel@tonic-gate 472*0Sstevel@tonic-gate=item Encode::JP::JIS7 473*0Sstevel@tonic-gate 474*0Sstevel@tonic-gateInternally used by Encode::JP 475*0Sstevel@tonic-gate 476*0Sstevel@tonic-gate=item Encode::KR 477*0Sstevel@tonic-gate 478*0Sstevel@tonic-gateKorean Encodings 479*0Sstevel@tonic-gate 480*0Sstevel@tonic-gate=item Encode::KR::2022_KR 481*0Sstevel@tonic-gate 482*0Sstevel@tonic-gateInternally used by Encode::KR 483*0Sstevel@tonic-gate 484*0Sstevel@tonic-gate=item Encode::MIME::Header 485*0Sstevel@tonic-gate 486*0Sstevel@tonic-gateMIME 'B' and 'Q' header encoding 487*0Sstevel@tonic-gate 488*0Sstevel@tonic-gate=item Encode::PerlIO 489*0Sstevel@tonic-gate 490*0Sstevel@tonic-gateA detailed document on Encode and PerlIO 491*0Sstevel@tonic-gate 492*0Sstevel@tonic-gate=item Encode::Supported 493*0Sstevel@tonic-gate 494*0Sstevel@tonic-gateEncodings supported by Encode 495*0Sstevel@tonic-gate 496*0Sstevel@tonic-gate=item Encode::Symbol 497*0Sstevel@tonic-gate 498*0Sstevel@tonic-gateSymbol Encodings 499*0Sstevel@tonic-gate 500*0Sstevel@tonic-gate=item Encode::TW 501*0Sstevel@tonic-gate 502*0Sstevel@tonic-gateTaiwan-based Chinese Encodings 503*0Sstevel@tonic-gate 504*0Sstevel@tonic-gate=item Encode::Unicode 505*0Sstevel@tonic-gate 506*0Sstevel@tonic-gateVarious Unicode Transformation Formats 507*0Sstevel@tonic-gate 508*0Sstevel@tonic-gate=item Encode::Unicode::UTF7 509*0Sstevel@tonic-gate 510*0Sstevel@tonic-gateUTF-7 encoding 511*0Sstevel@tonic-gate 512*0Sstevel@tonic-gate=item English 513*0Sstevel@tonic-gate 514*0Sstevel@tonic-gateUse nice English (or awk) names for ugly punctuation variables 515*0Sstevel@tonic-gate 516*0Sstevel@tonic-gate=item Env 517*0Sstevel@tonic-gate 518*0Sstevel@tonic-gatePerl module that imports environment variables as scalars or arrays 519*0Sstevel@tonic-gate 520*0Sstevel@tonic-gate=item Errno 521*0Sstevel@tonic-gate 522*0Sstevel@tonic-gateSystem errno constants 523*0Sstevel@tonic-gate 524*0Sstevel@tonic-gate=item Exporter 525*0Sstevel@tonic-gate 526*0Sstevel@tonic-gateImplements default import method for modules 527*0Sstevel@tonic-gate 528*0Sstevel@tonic-gate=item Exporter::Heavy 529*0Sstevel@tonic-gate 530*0Sstevel@tonic-gateExporter guts 531*0Sstevel@tonic-gate 532*0Sstevel@tonic-gate=item ExtUtils::Command 533*0Sstevel@tonic-gate 534*0Sstevel@tonic-gateUtilities to replace common UNIX commands in Makefiles etc. 535*0Sstevel@tonic-gate 536*0Sstevel@tonic-gate=item ExtUtils::Command::MM 537*0Sstevel@tonic-gate 538*0Sstevel@tonic-gateCommands for the MM's to use in Makefiles 539*0Sstevel@tonic-gate 540*0Sstevel@tonic-gate=item ExtUtils::Constant 541*0Sstevel@tonic-gate 542*0Sstevel@tonic-gateGenerate XS code to import C header constants 543*0Sstevel@tonic-gate 544*0Sstevel@tonic-gate=item ExtUtils::Embed 545*0Sstevel@tonic-gate 546*0Sstevel@tonic-gateUtilities for embedding Perl in C/C++ applications 547*0Sstevel@tonic-gate 548*0Sstevel@tonic-gate=item ExtUtils::Install 549*0Sstevel@tonic-gate 550*0Sstevel@tonic-gateInstall files from here to there 551*0Sstevel@tonic-gate 552*0Sstevel@tonic-gate=item ExtUtils::Installed 553*0Sstevel@tonic-gate 554*0Sstevel@tonic-gateInventory management of installed modules 555*0Sstevel@tonic-gate 556*0Sstevel@tonic-gate=item ExtUtils::Liblist 557*0Sstevel@tonic-gate 558*0Sstevel@tonic-gateDetermine libraries to use and how to use them 559*0Sstevel@tonic-gate 560*0Sstevel@tonic-gate=item ExtUtils::MM 561*0Sstevel@tonic-gate 562*0Sstevel@tonic-gateOS adjusted ExtUtils::MakeMaker subclass 563*0Sstevel@tonic-gate 564*0Sstevel@tonic-gate=item ExtUtils::MM_Any 565*0Sstevel@tonic-gate 566*0Sstevel@tonic-gatePlatform-agnostic MM methods 567*0Sstevel@tonic-gate 568*0Sstevel@tonic-gate=item ExtUtils::MM_BeOS 569*0Sstevel@tonic-gate 570*0Sstevel@tonic-gateMethods to override UN*X behaviour in ExtUtils::MakeMaker 571*0Sstevel@tonic-gate 572*0Sstevel@tonic-gate=item ExtUtils::MM_Cygwin 573*0Sstevel@tonic-gate 574*0Sstevel@tonic-gateMethods to override UN*X behaviour in ExtUtils::MakeMaker 575*0Sstevel@tonic-gate 576*0Sstevel@tonic-gate=item ExtUtils::MM_DOS 577*0Sstevel@tonic-gate 578*0Sstevel@tonic-gateDOS specific subclass of ExtUtils::MM_Unix 579*0Sstevel@tonic-gate 580*0Sstevel@tonic-gate=item ExtUtils::MM_MacOS 581*0Sstevel@tonic-gate 582*0Sstevel@tonic-gateMethods to override UN*X behaviour in ExtUtils::MakeMaker 583*0Sstevel@tonic-gate 584*0Sstevel@tonic-gate=item ExtUtils::MM_NW5 585*0Sstevel@tonic-gate 586*0Sstevel@tonic-gateMethods to override UN*X behaviour in ExtUtils::MakeMaker 587*0Sstevel@tonic-gate 588*0Sstevel@tonic-gate=item ExtUtils::MM_OS2 589*0Sstevel@tonic-gate 590*0Sstevel@tonic-gateMethods to override UN*X behaviour in ExtUtils::MakeMaker 591*0Sstevel@tonic-gate 592*0Sstevel@tonic-gate=item ExtUtils::MM_UWIN 593*0Sstevel@tonic-gate 594*0Sstevel@tonic-gateU/WIN specific subclass of ExtUtils::MM_Unix 595*0Sstevel@tonic-gate 596*0Sstevel@tonic-gate=item ExtUtils::MM_Unix 597*0Sstevel@tonic-gate 598*0Sstevel@tonic-gateMethods used by ExtUtils::MakeMaker 599*0Sstevel@tonic-gate 600*0Sstevel@tonic-gate=item ExtUtils::MM_VMS 601*0Sstevel@tonic-gate 602*0Sstevel@tonic-gateMethods to override UN*X behaviour in ExtUtils::MakeMaker 603*0Sstevel@tonic-gate 604*0Sstevel@tonic-gate=item ExtUtils::MM_Win32 605*0Sstevel@tonic-gate 606*0Sstevel@tonic-gateMethods to override UN*X behaviour in ExtUtils::MakeMaker 607*0Sstevel@tonic-gate 608*0Sstevel@tonic-gate=item ExtUtils::MM_Win95 609*0Sstevel@tonic-gate 610*0Sstevel@tonic-gateMethod to customize MakeMaker for Win9X 611*0Sstevel@tonic-gate 612*0Sstevel@tonic-gate=item ExtUtils::MY 613*0Sstevel@tonic-gate 614*0Sstevel@tonic-gateExtUtils::MakeMaker subclass for customization 615*0Sstevel@tonic-gate 616*0Sstevel@tonic-gate=item ExtUtils::MakeMaker 617*0Sstevel@tonic-gate 618*0Sstevel@tonic-gateCreate a module Makefile 619*0Sstevel@tonic-gate 620*0Sstevel@tonic-gate=item ExtUtils::MakeMaker::FAQ 621*0Sstevel@tonic-gate 622*0Sstevel@tonic-gateFrequently Asked Questions About MakeMaker 623*0Sstevel@tonic-gate 624*0Sstevel@tonic-gate=item ExtUtils::MakeMaker::Tutorial 625*0Sstevel@tonic-gate 626*0Sstevel@tonic-gateWriting a module with MakeMaker 627*0Sstevel@tonic-gate 628*0Sstevel@tonic-gate=item ExtUtils::MakeMaker::bytes 629*0Sstevel@tonic-gate 630*0Sstevel@tonic-gateVersion-agnostic bytes.pm 631*0Sstevel@tonic-gate 632*0Sstevel@tonic-gate=item ExtUtils::MakeMaker::vmsish 633*0Sstevel@tonic-gate 634*0Sstevel@tonic-gatePlatform-agnostic vmsish.pm 635*0Sstevel@tonic-gate 636*0Sstevel@tonic-gate=item ExtUtils::Manifest 637*0Sstevel@tonic-gate 638*0Sstevel@tonic-gateUtilities to write and check a MANIFEST file 639*0Sstevel@tonic-gate 640*0Sstevel@tonic-gate=item ExtUtils::Mkbootstrap 641*0Sstevel@tonic-gate 642*0Sstevel@tonic-gateMake a bootstrap file for use by DynaLoader 643*0Sstevel@tonic-gate 644*0Sstevel@tonic-gate=item ExtUtils::Mksymlists 645*0Sstevel@tonic-gate 646*0Sstevel@tonic-gateWrite linker options files for dynamic extension 647*0Sstevel@tonic-gate 648*0Sstevel@tonic-gate=item ExtUtils::Packlist 649*0Sstevel@tonic-gate 650*0Sstevel@tonic-gateManage .packlist files 651*0Sstevel@tonic-gate 652*0Sstevel@tonic-gate=item ExtUtils::testlib 653*0Sstevel@tonic-gate 654*0Sstevel@tonic-gateAdd blib/* directories to @INC 655*0Sstevel@tonic-gate 656*0Sstevel@tonic-gate=item Fatal 657*0Sstevel@tonic-gate 658*0Sstevel@tonic-gateReplace functions with equivalents which succeed or die 659*0Sstevel@tonic-gate 660*0Sstevel@tonic-gate=item Fcntl 661*0Sstevel@tonic-gate 662*0Sstevel@tonic-gateLoad the C Fcntl.h defines 663*0Sstevel@tonic-gate 664*0Sstevel@tonic-gate=item File::Basename 665*0Sstevel@tonic-gate 666*0Sstevel@tonic-gateSplit a pathname into pieces 667*0Sstevel@tonic-gate 668*0Sstevel@tonic-gate=item File::CheckTree 669*0Sstevel@tonic-gate 670*0Sstevel@tonic-gateRun many filetest checks on a tree 671*0Sstevel@tonic-gate 672*0Sstevel@tonic-gate=item File::Compare 673*0Sstevel@tonic-gate 674*0Sstevel@tonic-gateCompare files or filehandles 675*0Sstevel@tonic-gate 676*0Sstevel@tonic-gate=item File::Copy 677*0Sstevel@tonic-gate 678*0Sstevel@tonic-gateCopy files or filehandles 679*0Sstevel@tonic-gate 680*0Sstevel@tonic-gate=item File::DosGlob 681*0Sstevel@tonic-gate 682*0Sstevel@tonic-gateDOS like globbing and then some 683*0Sstevel@tonic-gate 684*0Sstevel@tonic-gate=item File::Find 685*0Sstevel@tonic-gate 686*0Sstevel@tonic-gateTraverse a directory tree. 687*0Sstevel@tonic-gate 688*0Sstevel@tonic-gate=item File::Glob 689*0Sstevel@tonic-gate 690*0Sstevel@tonic-gatePerl extension for BSD glob routine 691*0Sstevel@tonic-gate 692*0Sstevel@tonic-gate=item File::Path 693*0Sstevel@tonic-gate 694*0Sstevel@tonic-gateCreate or remove directory trees 695*0Sstevel@tonic-gate 696*0Sstevel@tonic-gate=item File::Spec 697*0Sstevel@tonic-gate 698*0Sstevel@tonic-gatePortably perform operations on file names 699*0Sstevel@tonic-gate 700*0Sstevel@tonic-gate=item File::Spec::Cygwin 701*0Sstevel@tonic-gate 702*0Sstevel@tonic-gateMethods for Cygwin file specs 703*0Sstevel@tonic-gate 704*0Sstevel@tonic-gate=item File::Spec::Epoc 705*0Sstevel@tonic-gate 706*0Sstevel@tonic-gateMethods for Epoc file specs 707*0Sstevel@tonic-gate 708*0Sstevel@tonic-gate=item File::Spec::Functions 709*0Sstevel@tonic-gate 710*0Sstevel@tonic-gatePortably perform operations on file names 711*0Sstevel@tonic-gate 712*0Sstevel@tonic-gate=item File::Spec::Mac 713*0Sstevel@tonic-gate 714*0Sstevel@tonic-gateFile::Spec for Mac OS (Classic) 715*0Sstevel@tonic-gate 716*0Sstevel@tonic-gate=item File::Spec::OS2 717*0Sstevel@tonic-gate 718*0Sstevel@tonic-gateMethods for OS/2 file specs 719*0Sstevel@tonic-gate 720*0Sstevel@tonic-gate=item File::Spec::Unix 721*0Sstevel@tonic-gate 722*0Sstevel@tonic-gateFile::Spec for Unix, base for other File::Spec modules 723*0Sstevel@tonic-gate 724*0Sstevel@tonic-gate=item File::Spec::VMS 725*0Sstevel@tonic-gate 726*0Sstevel@tonic-gateMethods for VMS file specs 727*0Sstevel@tonic-gate 728*0Sstevel@tonic-gate=item File::Spec::Win32 729*0Sstevel@tonic-gate 730*0Sstevel@tonic-gateMethods for Win32 file specs 731*0Sstevel@tonic-gate 732*0Sstevel@tonic-gate=item File::Temp 733*0Sstevel@tonic-gate 734*0Sstevel@tonic-gateReturn name and handle of a temporary file safely 735*0Sstevel@tonic-gate 736*0Sstevel@tonic-gate=item File::stat 737*0Sstevel@tonic-gate 738*0Sstevel@tonic-gateBy-name interface to Perl's built-in stat() functions 739*0Sstevel@tonic-gate 740*0Sstevel@tonic-gate=item FileCache 741*0Sstevel@tonic-gate 742*0Sstevel@tonic-gateKeep more files open than the system permits 743*0Sstevel@tonic-gate 744*0Sstevel@tonic-gate=item FileHandle 745*0Sstevel@tonic-gate 746*0Sstevel@tonic-gateSupply object methods for filehandles 747*0Sstevel@tonic-gate 748*0Sstevel@tonic-gate=item Filter::Simple 749*0Sstevel@tonic-gate 750*0Sstevel@tonic-gateSimplified source filtering 751*0Sstevel@tonic-gate 752*0Sstevel@tonic-gate=item Filter::Util::Call 753*0Sstevel@tonic-gate 754*0Sstevel@tonic-gatePerl Source Filter Utility Module 755*0Sstevel@tonic-gate 756*0Sstevel@tonic-gate=item FindBin 757*0Sstevel@tonic-gate 758*0Sstevel@tonic-gateLocate directory of original perl script 759*0Sstevel@tonic-gate 760*0Sstevel@tonic-gate=item GDBM_File 761*0Sstevel@tonic-gate 762*0Sstevel@tonic-gatePerl5 access to the gdbm library. 763*0Sstevel@tonic-gate 764*0Sstevel@tonic-gate=item Getopt::Long 765*0Sstevel@tonic-gate 766*0Sstevel@tonic-gateExtended processing of command line options 767*0Sstevel@tonic-gate 768*0Sstevel@tonic-gate=item Getopt::Std 769*0Sstevel@tonic-gate 770*0Sstevel@tonic-gateProcess single-character switches with switch clustering 771*0Sstevel@tonic-gate 772*0Sstevel@tonic-gate=item Hash::Util 773*0Sstevel@tonic-gate 774*0Sstevel@tonic-gateA selection of general-utility hash subroutines 775*0Sstevel@tonic-gate 776*0Sstevel@tonic-gate=item I18N::Collate 777*0Sstevel@tonic-gate 778*0Sstevel@tonic-gateCompare 8-bit scalar data according to the current locale 779*0Sstevel@tonic-gate 780*0Sstevel@tonic-gate=item I18N::LangTags 781*0Sstevel@tonic-gate 782*0Sstevel@tonic-gateFunctions for dealing with RFC3066-style language tags 783*0Sstevel@tonic-gate 784*0Sstevel@tonic-gate=item I18N::LangTags::List 785*0Sstevel@tonic-gate 786*0Sstevel@tonic-gateTags and names for human languages 787*0Sstevel@tonic-gate 788*0Sstevel@tonic-gate=item I18N::Langinfo 789*0Sstevel@tonic-gate 790*0Sstevel@tonic-gateQuery locale information 791*0Sstevel@tonic-gate 792*0Sstevel@tonic-gate=item IO 793*0Sstevel@tonic-gate 794*0Sstevel@tonic-gateLoad various IO modules 795*0Sstevel@tonic-gate 796*0Sstevel@tonic-gate=item IO::Dir 797*0Sstevel@tonic-gate 798*0Sstevel@tonic-gateSupply object methods for directory handles 799*0Sstevel@tonic-gate 800*0Sstevel@tonic-gate=item IO::File 801*0Sstevel@tonic-gate 802*0Sstevel@tonic-gateSupply object methods for filehandles 803*0Sstevel@tonic-gate 804*0Sstevel@tonic-gate=item IO::Handle 805*0Sstevel@tonic-gate 806*0Sstevel@tonic-gateSupply object methods for I/O handles 807*0Sstevel@tonic-gate 808*0Sstevel@tonic-gate=item IO::Pipe 809*0Sstevel@tonic-gate 810*0Sstevel@tonic-gateSupply object methods for pipes 811*0Sstevel@tonic-gate 812*0Sstevel@tonic-gate=item IO::Poll 813*0Sstevel@tonic-gate 814*0Sstevel@tonic-gateObject interface to system poll call 815*0Sstevel@tonic-gate 816*0Sstevel@tonic-gate=item IO::Seekable 817*0Sstevel@tonic-gate 818*0Sstevel@tonic-gateSupply seek based methods for I/O objects 819*0Sstevel@tonic-gate 820*0Sstevel@tonic-gate=item IO::Select 821*0Sstevel@tonic-gate 822*0Sstevel@tonic-gateOO interface to the select system call 823*0Sstevel@tonic-gate 824*0Sstevel@tonic-gate=item IO::Socket 825*0Sstevel@tonic-gate 826*0Sstevel@tonic-gateObject interface to socket communications 827*0Sstevel@tonic-gate 828*0Sstevel@tonic-gate=item IO::Socket::INET 829*0Sstevel@tonic-gate 830*0Sstevel@tonic-gateObject interface for AF_INET domain sockets 831*0Sstevel@tonic-gate 832*0Sstevel@tonic-gate=item IO::Socket::UNIX 833*0Sstevel@tonic-gate 834*0Sstevel@tonic-gateObject interface for AF_UNIX domain sockets 835*0Sstevel@tonic-gate 836*0Sstevel@tonic-gate=item IPC::Open2 837*0Sstevel@tonic-gate 838*0Sstevel@tonic-gateOpen a process for both reading and writing 839*0Sstevel@tonic-gate 840*0Sstevel@tonic-gate=item IPC::Open3 841*0Sstevel@tonic-gate 842*0Sstevel@tonic-gateOpen a process for reading, writing, and error handling 843*0Sstevel@tonic-gate 844*0Sstevel@tonic-gate=item IPC::SysV 845*0Sstevel@tonic-gate 846*0Sstevel@tonic-gateSysV IPC constants 847*0Sstevel@tonic-gate 848*0Sstevel@tonic-gate=item IPC::SysV::Msg 849*0Sstevel@tonic-gate 850*0Sstevel@tonic-gateSysV Msg IPC object class 851*0Sstevel@tonic-gate 852*0Sstevel@tonic-gate=item IPC::SysV::Semaphore 853*0Sstevel@tonic-gate 854*0Sstevel@tonic-gateSysV Semaphore IPC object class 855*0Sstevel@tonic-gate 856*0Sstevel@tonic-gate=item List::Util 857*0Sstevel@tonic-gate 858*0Sstevel@tonic-gateA selection of general-utility list subroutines 859*0Sstevel@tonic-gate 860*0Sstevel@tonic-gate=item Locale::Constants 861*0Sstevel@tonic-gate 862*0Sstevel@tonic-gateConstants for Locale codes 863*0Sstevel@tonic-gate 864*0Sstevel@tonic-gate=item Locale::Country 865*0Sstevel@tonic-gate 866*0Sstevel@tonic-gateISO codes for country identification (ISO 3166) 867*0Sstevel@tonic-gate 868*0Sstevel@tonic-gate=item Locale::Currency 869*0Sstevel@tonic-gate 870*0Sstevel@tonic-gateISO three letter codes for currency identification (ISO 4217) 871*0Sstevel@tonic-gate 872*0Sstevel@tonic-gate=item Locale::Language 873*0Sstevel@tonic-gate 874*0Sstevel@tonic-gateISO two letter codes for language identification (ISO 639) 875*0Sstevel@tonic-gate 876*0Sstevel@tonic-gate=item Locale::Maketext 877*0Sstevel@tonic-gate 878*0Sstevel@tonic-gateFramework for localization 879*0Sstevel@tonic-gate 880*0Sstevel@tonic-gate=item Locale::Maketext::TPJ13 881*0Sstevel@tonic-gate 882*0Sstevel@tonic-gateArticle about software localization 883*0Sstevel@tonic-gate 884*0Sstevel@tonic-gate=item Locale::Script 885*0Sstevel@tonic-gate 886*0Sstevel@tonic-gateISO codes for script identification (ISO 15924) 887*0Sstevel@tonic-gate 888*0Sstevel@tonic-gate=item MIME::Base64 889*0Sstevel@tonic-gate 890*0Sstevel@tonic-gateEncoding and decoding of base64 strings 891*0Sstevel@tonic-gate 892*0Sstevel@tonic-gate=item MIME::Base64::QuotedPrint 893*0Sstevel@tonic-gate 894*0Sstevel@tonic-gateEncoding and decoding of quoted-printable strings 895*0Sstevel@tonic-gate 896*0Sstevel@tonic-gate=item Math::BigFloat 897*0Sstevel@tonic-gate 898*0Sstevel@tonic-gateArbitrary size floating point math package 899*0Sstevel@tonic-gate 900*0Sstevel@tonic-gate=item Math::BigInt 901*0Sstevel@tonic-gate 902*0Sstevel@tonic-gateArbitrary size integer math package 903*0Sstevel@tonic-gate 904*0Sstevel@tonic-gate=item Math::BigInt::Calc 905*0Sstevel@tonic-gate 906*0Sstevel@tonic-gatePure Perl module to support Math::BigInt 907*0Sstevel@tonic-gate 908*0Sstevel@tonic-gate=item Math::BigRat 909*0Sstevel@tonic-gate 910*0Sstevel@tonic-gateArbitrarily big rationals 911*0Sstevel@tonic-gate 912*0Sstevel@tonic-gate=item Math::Complex 913*0Sstevel@tonic-gate 914*0Sstevel@tonic-gateComplex numbers and associated mathematical functions 915*0Sstevel@tonic-gate 916*0Sstevel@tonic-gate=item Math::Trig 917*0Sstevel@tonic-gate 918*0Sstevel@tonic-gateTrigonometric functions 919*0Sstevel@tonic-gate 920*0Sstevel@tonic-gate=item Memoize 921*0Sstevel@tonic-gate 922*0Sstevel@tonic-gateMake functions faster by trading space for time 923*0Sstevel@tonic-gate 924*0Sstevel@tonic-gate=item Memoize::AnyDBM_File 925*0Sstevel@tonic-gate 926*0Sstevel@tonic-gateGlue to provide EXISTS for AnyDBM_File for Storable use 927*0Sstevel@tonic-gate 928*0Sstevel@tonic-gate=item Memoize::Expire 929*0Sstevel@tonic-gate 930*0Sstevel@tonic-gatePlug-in module for automatic expiration of memoized values 931*0Sstevel@tonic-gate 932*0Sstevel@tonic-gate=item Memoize::ExpireFile 933*0Sstevel@tonic-gate 934*0Sstevel@tonic-gateTest for Memoize expiration semantics 935*0Sstevel@tonic-gate 936*0Sstevel@tonic-gate=item Memoize::ExpireTest 937*0Sstevel@tonic-gate 938*0Sstevel@tonic-gateTest for Memoize expiration semantics 939*0Sstevel@tonic-gate 940*0Sstevel@tonic-gate=item Memoize::NDBM_File 941*0Sstevel@tonic-gate 942*0Sstevel@tonic-gateGlue to provide EXISTS for NDBM_File for Storable use 943*0Sstevel@tonic-gate 944*0Sstevel@tonic-gate=item Memoize::SDBM_File 945*0Sstevel@tonic-gate 946*0Sstevel@tonic-gateGlue to provide EXISTS for SDBM_File for Storable use 947*0Sstevel@tonic-gate 948*0Sstevel@tonic-gate=item Memoize::Storable 949*0Sstevel@tonic-gate 950*0Sstevel@tonic-gateStore Memoized data in Storable database 951*0Sstevel@tonic-gate 952*0Sstevel@tonic-gate=item NDBM_File 953*0Sstevel@tonic-gate 954*0Sstevel@tonic-gateTied access to ndbm files 955*0Sstevel@tonic-gate 956*0Sstevel@tonic-gate=item NEXT 957*0Sstevel@tonic-gate 958*0Sstevel@tonic-gateProvide a pseudo-class NEXT (et al) that allows method redispatch 959*0Sstevel@tonic-gate 960*0Sstevel@tonic-gate=item Net::Cmd 961*0Sstevel@tonic-gate 962*0Sstevel@tonic-gateNetwork Command class (as used by FTP, SMTP etc) 963*0Sstevel@tonic-gate 964*0Sstevel@tonic-gate=item Net::Config 965*0Sstevel@tonic-gate 966*0Sstevel@tonic-gateLocal configuration data for libnet 967*0Sstevel@tonic-gate 968*0Sstevel@tonic-gate=item Net::Domain 969*0Sstevel@tonic-gate 970*0Sstevel@tonic-gateAttempt to evaluate the current host's internet name and domain 971*0Sstevel@tonic-gate 972*0Sstevel@tonic-gate=item Net::FTP 973*0Sstevel@tonic-gate 974*0Sstevel@tonic-gateFTP Client class 975*0Sstevel@tonic-gate 976*0Sstevel@tonic-gate=item Net::NNTP 977*0Sstevel@tonic-gate 978*0Sstevel@tonic-gateNNTP Client class 979*0Sstevel@tonic-gate 980*0Sstevel@tonic-gate=item Net::Netrc 981*0Sstevel@tonic-gate 982*0Sstevel@tonic-gateOO interface to users netrc file 983*0Sstevel@tonic-gate 984*0Sstevel@tonic-gate=item Net::POP3 985*0Sstevel@tonic-gate 986*0Sstevel@tonic-gatePost Office Protocol 3 Client class (RFC1939) 987*0Sstevel@tonic-gate 988*0Sstevel@tonic-gate=item Net::Ping 989*0Sstevel@tonic-gate 990*0Sstevel@tonic-gateCheck a remote host for reachability 991*0Sstevel@tonic-gate 992*0Sstevel@tonic-gate=item Net::SMTP 993*0Sstevel@tonic-gate 994*0Sstevel@tonic-gateSimple Mail Transfer Protocol Client 995*0Sstevel@tonic-gate 996*0Sstevel@tonic-gate=item Net::Time 997*0Sstevel@tonic-gate 998*0Sstevel@tonic-gateTime and daytime network client interface 999*0Sstevel@tonic-gate 1000*0Sstevel@tonic-gate=item Net::hostent 1001*0Sstevel@tonic-gate 1002*0Sstevel@tonic-gateBy-name interface to Perl's built-in gethost*() functions 1003*0Sstevel@tonic-gate 1004*0Sstevel@tonic-gate=item Net::libnetFAQ 1005*0Sstevel@tonic-gate 1006*0Sstevel@tonic-gateLibnet Frequently Asked Questions 1007*0Sstevel@tonic-gate 1008*0Sstevel@tonic-gate=item Net::netent 1009*0Sstevel@tonic-gate 1010*0Sstevel@tonic-gateBy-name interface to Perl's built-in getnet*() functions 1011*0Sstevel@tonic-gate 1012*0Sstevel@tonic-gate=item Net::protoent 1013*0Sstevel@tonic-gate 1014*0Sstevel@tonic-gateBy-name interface to Perl's built-in getproto*() functions 1015*0Sstevel@tonic-gate 1016*0Sstevel@tonic-gate=item Net::servent 1017*0Sstevel@tonic-gate 1018*0Sstevel@tonic-gateBy-name interface to Perl's built-in getserv*() functions 1019*0Sstevel@tonic-gate 1020*0Sstevel@tonic-gate=item O 1021*0Sstevel@tonic-gate 1022*0Sstevel@tonic-gateGeneric interface to Perl Compiler backends 1023*0Sstevel@tonic-gate 1024*0Sstevel@tonic-gate=item ODBM_File 1025*0Sstevel@tonic-gate 1026*0Sstevel@tonic-gateTied access to odbm files 1027*0Sstevel@tonic-gate 1028*0Sstevel@tonic-gate=item Opcode 1029*0Sstevel@tonic-gate 1030*0Sstevel@tonic-gateDisable named opcodes when compiling perl code 1031*0Sstevel@tonic-gate 1032*0Sstevel@tonic-gate=item POSIX 1033*0Sstevel@tonic-gate 1034*0Sstevel@tonic-gatePerl interface to IEEE Std 1003.1 1035*0Sstevel@tonic-gate 1036*0Sstevel@tonic-gate=item PerlIO 1037*0Sstevel@tonic-gate 1038*0Sstevel@tonic-gateOn demand loader for PerlIO layers and root of PerlIO::* name space 1039*0Sstevel@tonic-gate 1040*0Sstevel@tonic-gate=item PerlIO::encoding 1041*0Sstevel@tonic-gate 1042*0Sstevel@tonic-gateEncoding layer 1043*0Sstevel@tonic-gate 1044*0Sstevel@tonic-gate=item PerlIO::scalar 1045*0Sstevel@tonic-gate 1046*0Sstevel@tonic-gateIn-memory IO, scalar IO 1047*0Sstevel@tonic-gate 1048*0Sstevel@tonic-gate=item PerlIO::via 1049*0Sstevel@tonic-gate 1050*0Sstevel@tonic-gateHelper class for PerlIO layers implemented in perl 1051*0Sstevel@tonic-gate 1052*0Sstevel@tonic-gate=item PerlIO::via::QuotedPrint 1053*0Sstevel@tonic-gate 1054*0Sstevel@tonic-gatePerlIO layer for quoted-printable strings 1055*0Sstevel@tonic-gate 1056*0Sstevel@tonic-gate=item Pod::Checker 1057*0Sstevel@tonic-gate 1058*0Sstevel@tonic-gateCheck pod documents for syntax errors 1059*0Sstevel@tonic-gate 1060*0Sstevel@tonic-gate=item Pod::Find 1061*0Sstevel@tonic-gate 1062*0Sstevel@tonic-gateFind POD documents in directory trees 1063*0Sstevel@tonic-gate 1064*0Sstevel@tonic-gate=item Pod::Functions 1065*0Sstevel@tonic-gate 1066*0Sstevel@tonic-gateGroup Perl's functions a la perlfunc.pod 1067*0Sstevel@tonic-gate 1068*0Sstevel@tonic-gate=item Pod::Html 1069*0Sstevel@tonic-gate 1070*0Sstevel@tonic-gateModule to convert pod files to HTML 1071*0Sstevel@tonic-gate 1072*0Sstevel@tonic-gate=item Pod::InputObjects 1073*0Sstevel@tonic-gate 1074*0Sstevel@tonic-gateObjects representing POD input paragraphs, commands, etc. 1075*0Sstevel@tonic-gate 1076*0Sstevel@tonic-gate=item Pod::LaTeX 1077*0Sstevel@tonic-gate 1078*0Sstevel@tonic-gateConvert Pod data to formatted Latex 1079*0Sstevel@tonic-gate 1080*0Sstevel@tonic-gate=item Pod::Man 1081*0Sstevel@tonic-gate 1082*0Sstevel@tonic-gateConvert POD data to formatted *roff input 1083*0Sstevel@tonic-gate 1084*0Sstevel@tonic-gate=item Pod::ParseLink 1085*0Sstevel@tonic-gate 1086*0Sstevel@tonic-gateParse an LE<lt>E<gt> formatting code in POD text 1087*0Sstevel@tonic-gate 1088*0Sstevel@tonic-gate=item Pod::ParseUtils 1089*0Sstevel@tonic-gate 1090*0Sstevel@tonic-gateHelpers for POD parsing and conversion 1091*0Sstevel@tonic-gate 1092*0Sstevel@tonic-gate=item Pod::Parser 1093*0Sstevel@tonic-gate 1094*0Sstevel@tonic-gateBase class for creating POD filters and translators 1095*0Sstevel@tonic-gate 1096*0Sstevel@tonic-gate=item Pod::Perldoc::ToChecker 1097*0Sstevel@tonic-gate 1098*0Sstevel@tonic-gateLet Perldoc check Pod for errors 1099*0Sstevel@tonic-gate 1100*0Sstevel@tonic-gate=item Pod::Perldoc::ToMan 1101*0Sstevel@tonic-gate 1102*0Sstevel@tonic-gateLet Perldoc render Pod as man pages 1103*0Sstevel@tonic-gate 1104*0Sstevel@tonic-gate=item Pod::Perldoc::ToNroff 1105*0Sstevel@tonic-gate 1106*0Sstevel@tonic-gateLet Perldoc convert Pod to nroff 1107*0Sstevel@tonic-gate 1108*0Sstevel@tonic-gate=item Pod::Perldoc::ToPod 1109*0Sstevel@tonic-gate 1110*0Sstevel@tonic-gateLet Perldoc render Pod as ... Pod! 1111*0Sstevel@tonic-gate 1112*0Sstevel@tonic-gate=item Pod::Perldoc::ToRtf 1113*0Sstevel@tonic-gate 1114*0Sstevel@tonic-gateLet Perldoc render Pod as RTF 1115*0Sstevel@tonic-gate 1116*0Sstevel@tonic-gate=item Pod::Perldoc::ToText 1117*0Sstevel@tonic-gate 1118*0Sstevel@tonic-gateLet Perldoc render Pod as plaintext 1119*0Sstevel@tonic-gate 1120*0Sstevel@tonic-gate=item Pod::Perldoc::ToTk 1121*0Sstevel@tonic-gate 1122*0Sstevel@tonic-gateLet Perldoc use Tk::Pod to render Pod 1123*0Sstevel@tonic-gate 1124*0Sstevel@tonic-gate=item Pod::Perldoc::ToXml 1125*0Sstevel@tonic-gate 1126*0Sstevel@tonic-gateLet Perldoc render Pod as XML 1127*0Sstevel@tonic-gate 1128*0Sstevel@tonic-gate=item Pod::PlainText 1129*0Sstevel@tonic-gate 1130*0Sstevel@tonic-gateConvert POD data to formatted ASCII text 1131*0Sstevel@tonic-gate 1132*0Sstevel@tonic-gate=item Pod::Plainer 1133*0Sstevel@tonic-gate 1134*0Sstevel@tonic-gatePerl extension for converting Pod to old style Pod. 1135*0Sstevel@tonic-gate 1136*0Sstevel@tonic-gate=item Pod::Select 1137*0Sstevel@tonic-gate 1138*0Sstevel@tonic-gateExtract selected sections of POD from input 1139*0Sstevel@tonic-gate 1140*0Sstevel@tonic-gate=item Pod::Text 1141*0Sstevel@tonic-gate 1142*0Sstevel@tonic-gateConvert POD data to formatted ASCII text 1143*0Sstevel@tonic-gate 1144*0Sstevel@tonic-gate=item Pod::Text::Color 1145*0Sstevel@tonic-gate 1146*0Sstevel@tonic-gateConvert POD data to formatted color ASCII text 1147*0Sstevel@tonic-gate 1148*0Sstevel@tonic-gate=item Pod::Text::Overstrike 1149*0Sstevel@tonic-gate 1150*0Sstevel@tonic-gateConvert POD data to formatted overstrike text 1151*0Sstevel@tonic-gate 1152*0Sstevel@tonic-gate=item Pod::Text::Termcap 1153*0Sstevel@tonic-gate 1154*0Sstevel@tonic-gateConvert POD data to ASCII text with format escapes 1155*0Sstevel@tonic-gate 1156*0Sstevel@tonic-gate=item Pod::Usage 1157*0Sstevel@tonic-gate 1158*0Sstevel@tonic-gatePrint a usage message from embedded pod documentation 1159*0Sstevel@tonic-gate 1160*0Sstevel@tonic-gate=item SDBM_File 1161*0Sstevel@tonic-gate 1162*0Sstevel@tonic-gateTied access to sdbm files 1163*0Sstevel@tonic-gate 1164*0Sstevel@tonic-gate=item Safe 1165*0Sstevel@tonic-gate 1166*0Sstevel@tonic-gateCompile and execute code in restricted compartments 1167*0Sstevel@tonic-gate 1168*0Sstevel@tonic-gate=item Scalar::Util 1169*0Sstevel@tonic-gate 1170*0Sstevel@tonic-gateA selection of general-utility scalar subroutines 1171*0Sstevel@tonic-gate 1172*0Sstevel@tonic-gate=item Search::Dict 1173*0Sstevel@tonic-gate 1174*0Sstevel@tonic-gateSearch for key in dictionary file 1175*0Sstevel@tonic-gate 1176*0Sstevel@tonic-gate=item SelectSaver 1177*0Sstevel@tonic-gate 1178*0Sstevel@tonic-gateSave and restore selected file handle 1179*0Sstevel@tonic-gate 1180*0Sstevel@tonic-gate=item SelfLoader 1181*0Sstevel@tonic-gate 1182*0Sstevel@tonic-gateLoad functions only on demand 1183*0Sstevel@tonic-gate 1184*0Sstevel@tonic-gate=item Shell 1185*0Sstevel@tonic-gate 1186*0Sstevel@tonic-gateRun shell commands transparently within perl 1187*0Sstevel@tonic-gate 1188*0Sstevel@tonic-gate=item Socket 1189*0Sstevel@tonic-gate 1190*0Sstevel@tonic-gateLoad the C socket.h defines and structure manipulators 1191*0Sstevel@tonic-gate 1192*0Sstevel@tonic-gate=item Storable 1193*0Sstevel@tonic-gate 1194*0Sstevel@tonic-gatePersistence for Perl data structures 1195*0Sstevel@tonic-gate 1196*0Sstevel@tonic-gate=item Switch 1197*0Sstevel@tonic-gate 1198*0Sstevel@tonic-gateA switch statement for Perl 1199*0Sstevel@tonic-gate 1200*0Sstevel@tonic-gate=item Symbol 1201*0Sstevel@tonic-gate 1202*0Sstevel@tonic-gateManipulate Perl symbols and their names 1203*0Sstevel@tonic-gate 1204*0Sstevel@tonic-gate=item Sys::Hostname 1205*0Sstevel@tonic-gate 1206*0Sstevel@tonic-gateTry every conceivable way to get hostname 1207*0Sstevel@tonic-gate 1208*0Sstevel@tonic-gate=item Sys::Syslog 1209*0Sstevel@tonic-gate 1210*0Sstevel@tonic-gatePerl interface to the UNIX syslog(3) calls 1211*0Sstevel@tonic-gate 1212*0Sstevel@tonic-gate=item Term::ANSIColor 1213*0Sstevel@tonic-gate 1214*0Sstevel@tonic-gateColor screen output using ANSI escape sequences 1215*0Sstevel@tonic-gate 1216*0Sstevel@tonic-gate=item Term::Cap 1217*0Sstevel@tonic-gate 1218*0Sstevel@tonic-gatePerl termcap interface 1219*0Sstevel@tonic-gate 1220*0Sstevel@tonic-gate=item Term::Complete 1221*0Sstevel@tonic-gate 1222*0Sstevel@tonic-gatePerl word completion module 1223*0Sstevel@tonic-gate 1224*0Sstevel@tonic-gate=item Term::ReadLine 1225*0Sstevel@tonic-gate 1226*0Sstevel@tonic-gatePerl interface to various C<readline> packages. 1227*0Sstevel@tonic-gate 1228*0Sstevel@tonic-gate=item Test 1229*0Sstevel@tonic-gate 1230*0Sstevel@tonic-gateProvides a simple framework for writing test scripts 1231*0Sstevel@tonic-gate 1232*0Sstevel@tonic-gate=item Test::Builder 1233*0Sstevel@tonic-gate 1234*0Sstevel@tonic-gateBackend for building test libraries 1235*0Sstevel@tonic-gate 1236*0Sstevel@tonic-gate=item Test::Harness 1237*0Sstevel@tonic-gate 1238*0Sstevel@tonic-gateRun Perl standard test scripts with statistics 1239*0Sstevel@tonic-gate 1240*0Sstevel@tonic-gate=item Test::Harness::Assert 1241*0Sstevel@tonic-gate 1242*0Sstevel@tonic-gateSimple assert 1243*0Sstevel@tonic-gate 1244*0Sstevel@tonic-gate=item Test::Harness::Iterator 1245*0Sstevel@tonic-gate 1246*0Sstevel@tonic-gateInternal Test::Harness Iterator 1247*0Sstevel@tonic-gate 1248*0Sstevel@tonic-gate=item Test::Harness::Straps 1249*0Sstevel@tonic-gate 1250*0Sstevel@tonic-gateDetailed analysis of test results 1251*0Sstevel@tonic-gate 1252*0Sstevel@tonic-gate=item Test::More 1253*0Sstevel@tonic-gate 1254*0Sstevel@tonic-gateYet another framework for writing test scripts 1255*0Sstevel@tonic-gate 1256*0Sstevel@tonic-gate=item Test::Simple 1257*0Sstevel@tonic-gate 1258*0Sstevel@tonic-gateBasic utilities for writing tests. 1259*0Sstevel@tonic-gate 1260*0Sstevel@tonic-gate=item Test::Tutorial 1261*0Sstevel@tonic-gate 1262*0Sstevel@tonic-gateA tutorial about writing really basic tests 1263*0Sstevel@tonic-gate 1264*0Sstevel@tonic-gate=item Text::Abbrev 1265*0Sstevel@tonic-gate 1266*0Sstevel@tonic-gateCreate an abbreviation table from a list 1267*0Sstevel@tonic-gate 1268*0Sstevel@tonic-gate=item Text::Balanced 1269*0Sstevel@tonic-gate 1270*0Sstevel@tonic-gateExtract delimited text sequences from strings. 1271*0Sstevel@tonic-gate 1272*0Sstevel@tonic-gate=item Text::ParseWords 1273*0Sstevel@tonic-gate 1274*0Sstevel@tonic-gateParse text into an array of tokens or array of arrays 1275*0Sstevel@tonic-gate 1276*0Sstevel@tonic-gate=item Text::Soundex 1277*0Sstevel@tonic-gate 1278*0Sstevel@tonic-gateImplementation of the Soundex Algorithm as Described by Knuth 1279*0Sstevel@tonic-gate 1280*0Sstevel@tonic-gate=item Text::Tabs 1281*0Sstevel@tonic-gate 1282*0Sstevel@tonic-gateExpand and unexpand tabs per the unix expand(1) and unexpand(1) 1283*0Sstevel@tonic-gate 1284*0Sstevel@tonic-gate=item Text::Wrap 1285*0Sstevel@tonic-gate 1286*0Sstevel@tonic-gateLine wrapping to form simple paragraphs 1287*0Sstevel@tonic-gate 1288*0Sstevel@tonic-gate=item Thread 1289*0Sstevel@tonic-gate 1290*0Sstevel@tonic-gateManipulate threads in Perl (for old code only) 1291*0Sstevel@tonic-gate 1292*0Sstevel@tonic-gate=item Thread::Queue 1293*0Sstevel@tonic-gate 1294*0Sstevel@tonic-gateThread-safe queues 1295*0Sstevel@tonic-gate 1296*0Sstevel@tonic-gate=item Thread::Semaphore 1297*0Sstevel@tonic-gate 1298*0Sstevel@tonic-gateThread-safe semaphores 1299*0Sstevel@tonic-gate 1300*0Sstevel@tonic-gate=item Thread::Signal 1301*0Sstevel@tonic-gate 1302*0Sstevel@tonic-gateStart a thread which runs signal handlers reliably (for old code) 1303*0Sstevel@tonic-gate 1304*0Sstevel@tonic-gate=item Thread::Specific 1305*0Sstevel@tonic-gate 1306*0Sstevel@tonic-gateThread-specific keys 1307*0Sstevel@tonic-gate 1308*0Sstevel@tonic-gate=item Tie::Array 1309*0Sstevel@tonic-gate 1310*0Sstevel@tonic-gateBase class for tied arrays 1311*0Sstevel@tonic-gate 1312*0Sstevel@tonic-gate=item Tie::File 1313*0Sstevel@tonic-gate 1314*0Sstevel@tonic-gateAccess the lines of a disk file via a Perl array 1315*0Sstevel@tonic-gate 1316*0Sstevel@tonic-gate=item Tie::Handle 1317*0Sstevel@tonic-gate 1318*0Sstevel@tonic-gateBase class definitions for tied handles 1319*0Sstevel@tonic-gate 1320*0Sstevel@tonic-gate=item Tie::Hash 1321*0Sstevel@tonic-gate 1322*0Sstevel@tonic-gateBase class definitions for tied hashes 1323*0Sstevel@tonic-gate 1324*0Sstevel@tonic-gate=item Tie::Memoize 1325*0Sstevel@tonic-gate 1326*0Sstevel@tonic-gateAdd data to hash when needed 1327*0Sstevel@tonic-gate 1328*0Sstevel@tonic-gate=item Tie::RefHash 1329*0Sstevel@tonic-gate 1330*0Sstevel@tonic-gateUse references as hash keys 1331*0Sstevel@tonic-gate 1332*0Sstevel@tonic-gate=item Tie::Scalar 1333*0Sstevel@tonic-gate 1334*0Sstevel@tonic-gateBase class definitions for tied scalars 1335*0Sstevel@tonic-gate 1336*0Sstevel@tonic-gate=item Tie::SubstrHash 1337*0Sstevel@tonic-gate 1338*0Sstevel@tonic-gateFixed-table-size, fixed-key-length hashing 1339*0Sstevel@tonic-gate 1340*0Sstevel@tonic-gate=item Time::HiRes 1341*0Sstevel@tonic-gate 1342*0Sstevel@tonic-gateHigh resolution alarm, sleep, gettimeofday, interval timers 1343*0Sstevel@tonic-gate 1344*0Sstevel@tonic-gate=item Time::Local 1345*0Sstevel@tonic-gate 1346*0Sstevel@tonic-gateEfficiently compute time from local and GMT time 1347*0Sstevel@tonic-gate 1348*0Sstevel@tonic-gate=item Time::gmtime 1349*0Sstevel@tonic-gate 1350*0Sstevel@tonic-gateBy-name interface to Perl's built-in gmtime() function 1351*0Sstevel@tonic-gate 1352*0Sstevel@tonic-gate=item Time::localtime 1353*0Sstevel@tonic-gate 1354*0Sstevel@tonic-gateBy-name interface to Perl's built-in localtime() function 1355*0Sstevel@tonic-gate 1356*0Sstevel@tonic-gate=item Time::tm 1357*0Sstevel@tonic-gate 1358*0Sstevel@tonic-gateInternal object used by Time::gmtime and Time::localtime 1359*0Sstevel@tonic-gate 1360*0Sstevel@tonic-gate=item UNIVERSAL 1361*0Sstevel@tonic-gate 1362*0Sstevel@tonic-gateBase class for ALL classes (blessed references) 1363*0Sstevel@tonic-gate 1364*0Sstevel@tonic-gate=item Unicode::Collate 1365*0Sstevel@tonic-gate 1366*0Sstevel@tonic-gateUnicode Collation Algorithm 1367*0Sstevel@tonic-gate 1368*0Sstevel@tonic-gate=item Unicode::Normalize 1369*0Sstevel@tonic-gate 1370*0Sstevel@tonic-gateUnicode Normalization Forms 1371*0Sstevel@tonic-gate 1372*0Sstevel@tonic-gate=item Unicode::UCD 1373*0Sstevel@tonic-gate 1374*0Sstevel@tonic-gateUnicode character database 1375*0Sstevel@tonic-gate 1376*0Sstevel@tonic-gate=item User::grent 1377*0Sstevel@tonic-gate 1378*0Sstevel@tonic-gateBy-name interface to Perl's built-in getgr*() functions 1379*0Sstevel@tonic-gate 1380*0Sstevel@tonic-gate=item User::pwent 1381*0Sstevel@tonic-gate 1382*0Sstevel@tonic-gateBy-name interface to Perl's built-in getpw*() functions 1383*0Sstevel@tonic-gate 1384*0Sstevel@tonic-gate=item Win32 1385*0Sstevel@tonic-gate 1386*0Sstevel@tonic-gateInterfaces to some Win32 API Functions 1387*0Sstevel@tonic-gate 1388*0Sstevel@tonic-gate=item XS::APItest 1389*0Sstevel@tonic-gate 1390*0Sstevel@tonic-gateTest the perl C API 1391*0Sstevel@tonic-gate 1392*0Sstevel@tonic-gate=item XS::Typemap 1393*0Sstevel@tonic-gate 1394*0Sstevel@tonic-gateModule to test the XS typemaps distributed with perl 1395*0Sstevel@tonic-gate 1396*0Sstevel@tonic-gate=item XSLoader 1397*0Sstevel@tonic-gate 1398*0Sstevel@tonic-gateDynamically load C libraries into Perl code 1399*0Sstevel@tonic-gate 1400*0Sstevel@tonic-gate=back 1401*0Sstevel@tonic-gate 1402*0Sstevel@tonic-gateTo find out I<all> modules installed on your system, including 1403*0Sstevel@tonic-gatethose without documentation or outside the standard release, 1404*0Sstevel@tonic-gatejust use the following command (under the default win32 shell, 1405*0Sstevel@tonic-gatedouble quotes should be used instead of single quotes). 1406*0Sstevel@tonic-gate 1407*0Sstevel@tonic-gate % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \ 1408*0Sstevel@tonic-gate 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, 1409*0Sstevel@tonic-gate no_chdir => 1 }, @INC' 1410*0Sstevel@tonic-gate 1411*0Sstevel@tonic-gate(The -T is here to prevent '.' from being listed in @INC.) 1412*0Sstevel@tonic-gateThey should all have their own documentation installed and accessible 1413*0Sstevel@tonic-gatevia your system man(1) command. If you do not have a B<find> 1414*0Sstevel@tonic-gateprogram, you can use the Perl B<find2perl> program instead, which 1415*0Sstevel@tonic-gategenerates Perl code as output you can run through perl. If you 1416*0Sstevel@tonic-gatehave a B<man> program but it doesn't find your modules, you'll have 1417*0Sstevel@tonic-gateto fix your manpath. See L<perl> for details. If you have no 1418*0Sstevel@tonic-gatesystem B<man> command, you might try the B<perldoc> program. 1419*0Sstevel@tonic-gate 1420*0Sstevel@tonic-gateNote also that the command C<perldoc perllocal> gives you a (possibly 1421*0Sstevel@tonic-gateincomplete) list of the modules that have been further installed on 1422*0Sstevel@tonic-gateyour system. (The perllocal.pod file is updated by the standard MakeMaker 1423*0Sstevel@tonic-gateinstall process.) 1424*0Sstevel@tonic-gate 1425*0Sstevel@tonic-gate=head2 Extension Modules 1426*0Sstevel@tonic-gate 1427*0Sstevel@tonic-gateExtension modules are written in C (or a mix of Perl and C). They 1428*0Sstevel@tonic-gateare usually dynamically loaded into Perl if and when you need them, 1429*0Sstevel@tonic-gatebut may also be linked in statically. Supported extension modules 1430*0Sstevel@tonic-gateinclude Socket, Fcntl, and POSIX. 1431*0Sstevel@tonic-gate 1432*0Sstevel@tonic-gateMany popular C extension modules do not come bundled (at least, not 1433*0Sstevel@tonic-gatecompletely) due to their sizes, volatility, or simply lack of time 1434*0Sstevel@tonic-gatefor adequate testing and configuration across the multitude of 1435*0Sstevel@tonic-gateplatforms on which Perl was beta-tested. You are encouraged to 1436*0Sstevel@tonic-gatelook for them on CPAN (described below), or using web search engines 1437*0Sstevel@tonic-gatelike Alta Vista or Google. 1438*0Sstevel@tonic-gate 1439*0Sstevel@tonic-gate=head1 CPAN 1440*0Sstevel@tonic-gate 1441*0Sstevel@tonic-gateCPAN stands for Comprehensive Perl Archive Network; it's a globally 1442*0Sstevel@tonic-gatereplicated trove of Perl materials, including documentation, style 1443*0Sstevel@tonic-gateguides, tricks and traps, alternate ports to non-Unix systems and 1444*0Sstevel@tonic-gateoccasional binary distributions for these. Search engines for 1445*0Sstevel@tonic-gateCPAN can be found at http://www.cpan.org/ 1446*0Sstevel@tonic-gate 1447*0Sstevel@tonic-gateMost importantly, CPAN includes around a thousand unbundled modules, 1448*0Sstevel@tonic-gatesome of which require a C compiler to build. Major categories of 1449*0Sstevel@tonic-gatemodules are: 1450*0Sstevel@tonic-gate 1451*0Sstevel@tonic-gate=over 1452*0Sstevel@tonic-gate 1453*0Sstevel@tonic-gate=item * 1454*0Sstevel@tonic-gate 1455*0Sstevel@tonic-gateLanguage Extensions and Documentation Tools 1456*0Sstevel@tonic-gate 1457*0Sstevel@tonic-gate=item * 1458*0Sstevel@tonic-gate 1459*0Sstevel@tonic-gateDevelopment Support 1460*0Sstevel@tonic-gate 1461*0Sstevel@tonic-gate=item * 1462*0Sstevel@tonic-gate 1463*0Sstevel@tonic-gateOperating System Interfaces 1464*0Sstevel@tonic-gate 1465*0Sstevel@tonic-gate=item * 1466*0Sstevel@tonic-gate 1467*0Sstevel@tonic-gateNetworking, Device Control (modems) and InterProcess Communication 1468*0Sstevel@tonic-gate 1469*0Sstevel@tonic-gate=item * 1470*0Sstevel@tonic-gate 1471*0Sstevel@tonic-gateData Types and Data Type Utilities 1472*0Sstevel@tonic-gate 1473*0Sstevel@tonic-gate=item * 1474*0Sstevel@tonic-gate 1475*0Sstevel@tonic-gateDatabase Interfaces 1476*0Sstevel@tonic-gate 1477*0Sstevel@tonic-gate=item * 1478*0Sstevel@tonic-gate 1479*0Sstevel@tonic-gateUser Interfaces 1480*0Sstevel@tonic-gate 1481*0Sstevel@tonic-gate=item * 1482*0Sstevel@tonic-gate 1483*0Sstevel@tonic-gateInterfaces to / Emulations of Other Programming Languages 1484*0Sstevel@tonic-gate 1485*0Sstevel@tonic-gate=item * 1486*0Sstevel@tonic-gate 1487*0Sstevel@tonic-gateFile Names, File Systems and File Locking (see also File Handles) 1488*0Sstevel@tonic-gate 1489*0Sstevel@tonic-gate=item * 1490*0Sstevel@tonic-gate 1491*0Sstevel@tonic-gateString Processing, Language Text Processing, Parsing, and Searching 1492*0Sstevel@tonic-gate 1493*0Sstevel@tonic-gate=item * 1494*0Sstevel@tonic-gate 1495*0Sstevel@tonic-gateOption, Argument, Parameter, and Configuration File Processing 1496*0Sstevel@tonic-gate 1497*0Sstevel@tonic-gate=item * 1498*0Sstevel@tonic-gate 1499*0Sstevel@tonic-gateInternationalization and Locale 1500*0Sstevel@tonic-gate 1501*0Sstevel@tonic-gate=item * 1502*0Sstevel@tonic-gate 1503*0Sstevel@tonic-gateAuthentication, Security, and Encryption 1504*0Sstevel@tonic-gate 1505*0Sstevel@tonic-gate=item * 1506*0Sstevel@tonic-gate 1507*0Sstevel@tonic-gateWorld Wide Web, HTML, HTTP, CGI, MIME 1508*0Sstevel@tonic-gate 1509*0Sstevel@tonic-gate=item * 1510*0Sstevel@tonic-gate 1511*0Sstevel@tonic-gateServer and Daemon Utilities 1512*0Sstevel@tonic-gate 1513*0Sstevel@tonic-gate=item * 1514*0Sstevel@tonic-gate 1515*0Sstevel@tonic-gateArchiving and Compression 1516*0Sstevel@tonic-gate 1517*0Sstevel@tonic-gate=item * 1518*0Sstevel@tonic-gate 1519*0Sstevel@tonic-gateImages, Pixmap and Bitmap Manipulation, Drawing, and Graphing 1520*0Sstevel@tonic-gate 1521*0Sstevel@tonic-gate=item * 1522*0Sstevel@tonic-gate 1523*0Sstevel@tonic-gateMail and Usenet News 1524*0Sstevel@tonic-gate 1525*0Sstevel@tonic-gate=item * 1526*0Sstevel@tonic-gate 1527*0Sstevel@tonic-gateControl Flow Utilities (callbacks and exceptions etc) 1528*0Sstevel@tonic-gate 1529*0Sstevel@tonic-gate=item * 1530*0Sstevel@tonic-gate 1531*0Sstevel@tonic-gateFile Handle and Input/Output Stream Utilities 1532*0Sstevel@tonic-gate 1533*0Sstevel@tonic-gate=item * 1534*0Sstevel@tonic-gate 1535*0Sstevel@tonic-gateMiscellaneous Modules 1536*0Sstevel@tonic-gate 1537*0Sstevel@tonic-gate=back 1538*0Sstevel@tonic-gate 1539*0Sstevel@tonic-gateThe list of the registered CPAN sites as of this writing follows. 1540*0Sstevel@tonic-gatePlease note that the sorting order is alphabetical on fields: 1541*0Sstevel@tonic-gate 1542*0Sstevel@tonic-gateContinent 1543*0Sstevel@tonic-gate | 1544*0Sstevel@tonic-gate |-->Country 1545*0Sstevel@tonic-gate | 1546*0Sstevel@tonic-gate |-->[state/province] 1547*0Sstevel@tonic-gate | 1548*0Sstevel@tonic-gate |-->ftp 1549*0Sstevel@tonic-gate | 1550*0Sstevel@tonic-gate |-->[http] 1551*0Sstevel@tonic-gate 1552*0Sstevel@tonic-gateand thus the North American servers happen to be listed between the 1553*0Sstevel@tonic-gateEuropean and the South American sites. 1554*0Sstevel@tonic-gate 1555*0Sstevel@tonic-gateYou should try to choose one close to you. 1556*0Sstevel@tonic-gate 1557*0Sstevel@tonic-gate=head2 Africa 1558*0Sstevel@tonic-gate 1559*0Sstevel@tonic-gate=over 4 1560*0Sstevel@tonic-gate 1561*0Sstevel@tonic-gate=item South Africa 1562*0Sstevel@tonic-gate 1563*0Sstevel@tonic-gate http://ftp.rucus.ru.ac.za/pub/perl/CPAN/ 1564*0Sstevel@tonic-gate ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/ 1565*0Sstevel@tonic-gate ftp://ftp.is.co.za/programming/perl/CPAN/ 1566*0Sstevel@tonic-gate ftp://ftp.saix.net/pub/CPAN/ 1567*0Sstevel@tonic-gate ftp://ftp.sun.ac.za/CPAN/CPAN/ 1568*0Sstevel@tonic-gate 1569*0Sstevel@tonic-gate=back 1570*0Sstevel@tonic-gate 1571*0Sstevel@tonic-gate=head2 Asia 1572*0Sstevel@tonic-gate 1573*0Sstevel@tonic-gate=over 4 1574*0Sstevel@tonic-gate 1575*0Sstevel@tonic-gate=item China 1576*0Sstevel@tonic-gate 1577*0Sstevel@tonic-gate http://cpan.linuxforum.net/ 1578*0Sstevel@tonic-gate http://cpan.shellhung.org/ 1579*0Sstevel@tonic-gate ftp://ftp.shellhung.org/pub/CPAN 1580*0Sstevel@tonic-gate ftp://mirrors.hknet.com/CPAN 1581*0Sstevel@tonic-gate 1582*0Sstevel@tonic-gate=item Indonesia 1583*0Sstevel@tonic-gate 1584*0Sstevel@tonic-gate http://mirrors.tf.itb.ac.id/cpan/ 1585*0Sstevel@tonic-gate http://cpan.cbn.net.id/ 1586*0Sstevel@tonic-gate ftp://ftp.cbn.net.id/mirror/CPAN 1587*0Sstevel@tonic-gate 1588*0Sstevel@tonic-gate=item Israel 1589*0Sstevel@tonic-gate 1590*0Sstevel@tonic-gate ftp://ftp.iglu.org.il/pub/CPAN/ 1591*0Sstevel@tonic-gate http://cpan.lerner.co.il/ 1592*0Sstevel@tonic-gate http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/ 1593*0Sstevel@tonic-gate ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/ 1594*0Sstevel@tonic-gate 1595*0Sstevel@tonic-gate=item Japan 1596*0Sstevel@tonic-gate 1597*0Sstevel@tonic-gate ftp://ftp.u-aizu.ac.jp/pub/CPAN 1598*0Sstevel@tonic-gate ftp://ftp.kddlabs.co.jp/CPAN/ 1599*0Sstevel@tonic-gate ftp://ftp.ayamura.org/pub/CPAN/ 1600*0Sstevel@tonic-gate ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/ 1601*0Sstevel@tonic-gate http://ftp.cpan.jp/ 1602*0Sstevel@tonic-gate ftp://ftp.cpan.jp/CPAN/ 1603*0Sstevel@tonic-gate ftp://ftp.dti.ad.jp/pub/lang/CPAN/ 1604*0Sstevel@tonic-gate ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/ 1605*0Sstevel@tonic-gate 1606*0Sstevel@tonic-gate=item Malaysia 1607*0Sstevel@tonic-gate 1608*0Sstevel@tonic-gate http://cpan.MyBSD.org.my 1609*0Sstevel@tonic-gate http://mirror.leafbug.org/pub/CPAN 1610*0Sstevel@tonic-gate http://ossig.mncc.com.my/mirror/pub/CPAN 1611*0Sstevel@tonic-gate 1612*0Sstevel@tonic-gate=item Russian Federation 1613*0Sstevel@tonic-gate 1614*0Sstevel@tonic-gate http://cpan.tomsk.ru 1615*0Sstevel@tonic-gate ftp://cpan.tomsk.ru/ 1616*0Sstevel@tonic-gate 1617*0Sstevel@tonic-gate=item Saudi Arabia 1618*0Sstevel@tonic-gate 1619*0Sstevel@tonic-gate ftp://ftp.isu.net.sa/pub/CPAN/ 1620*0Sstevel@tonic-gate 1621*0Sstevel@tonic-gate=item Singapore 1622*0Sstevel@tonic-gate 1623*0Sstevel@tonic-gate http://CPAN.en.com.sg/ 1624*0Sstevel@tonic-gate ftp://cpan.en.com.sg/ 1625*0Sstevel@tonic-gate http://mirror.averse.net/pub/CPAN 1626*0Sstevel@tonic-gate ftp://mirror.averse.net/pub/CPAN 1627*0Sstevel@tonic-gate http://cpan.oss.eznetsols.org 1628*0Sstevel@tonic-gate ftp://ftp.oss.eznetsols.org/cpan 1629*0Sstevel@tonic-gate 1630*0Sstevel@tonic-gate=item South Korea 1631*0Sstevel@tonic-gate 1632*0Sstevel@tonic-gate http://CPAN.bora.net/ 1633*0Sstevel@tonic-gate ftp://ftp.bora.net/pub/CPAN/ 1634*0Sstevel@tonic-gate http://mirror.kr.FreeBSD.org/CPAN 1635*0Sstevel@tonic-gate ftp://ftp.kr.FreeBSD.org/pub/CPAN 1636*0Sstevel@tonic-gate 1637*0Sstevel@tonic-gate=item Taiwan 1638*0Sstevel@tonic-gate 1639*0Sstevel@tonic-gate ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN 1640*0Sstevel@tonic-gate http://cpan.cdpa.nsysu.edu.tw/ 1641*0Sstevel@tonic-gate ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN 1642*0Sstevel@tonic-gate http://ftp.isu.edu.tw/pub/CPAN 1643*0Sstevel@tonic-gate ftp://ftp.isu.edu.tw/pub/CPAN 1644*0Sstevel@tonic-gate ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/ 1645*0Sstevel@tonic-gate http://ftp.tku.edu.tw/pub/CPAN/ 1646*0Sstevel@tonic-gate ftp://ftp.tku.edu.tw/pub/CPAN/ 1647*0Sstevel@tonic-gate 1648*0Sstevel@tonic-gate=item Thailand 1649*0Sstevel@tonic-gate 1650*0Sstevel@tonic-gate ftp://ftp.loxinfo.co.th/pub/cpan/ 1651*0Sstevel@tonic-gate ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/ 1652*0Sstevel@tonic-gate 1653*0Sstevel@tonic-gate=back 1654*0Sstevel@tonic-gate 1655*0Sstevel@tonic-gate=head2 Central America 1656*0Sstevel@tonic-gate 1657*0Sstevel@tonic-gate=over 4 1658*0Sstevel@tonic-gate 1659*0Sstevel@tonic-gate=item Costa Rica 1660*0Sstevel@tonic-gate 1661*0Sstevel@tonic-gate http://ftp.ucr.ac.cr/Unix/CPAN/ 1662*0Sstevel@tonic-gate ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/ 1663*0Sstevel@tonic-gate 1664*0Sstevel@tonic-gate=back 1665*0Sstevel@tonic-gate 1666*0Sstevel@tonic-gate=head2 Europe 1667*0Sstevel@tonic-gate 1668*0Sstevel@tonic-gate=over 4 1669*0Sstevel@tonic-gate 1670*0Sstevel@tonic-gate=item Austria 1671*0Sstevel@tonic-gate 1672*0Sstevel@tonic-gate http://cpan.inode.at/ 1673*0Sstevel@tonic-gate ftp://cpan.inode.at 1674*0Sstevel@tonic-gate ftp://ftp.tuwien.ac.at/pub/CPAN/ 1675*0Sstevel@tonic-gate 1676*0Sstevel@tonic-gate=item Belgium 1677*0Sstevel@tonic-gate 1678*0Sstevel@tonic-gate http://ftp.easynet.be/pub/CPAN/ 1679*0Sstevel@tonic-gate ftp://ftp.easynet.be/pub/CPAN/ 1680*0Sstevel@tonic-gate http://cpan.skynet.be 1681*0Sstevel@tonic-gate ftp://ftp.cpan.skynet.be/pub/CPAN 1682*0Sstevel@tonic-gate ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/ 1683*0Sstevel@tonic-gate 1684*0Sstevel@tonic-gate=item Bosnia and Herzegovina 1685*0Sstevel@tonic-gate 1686*0Sstevel@tonic-gate http://cpan.blic.net/ 1687*0Sstevel@tonic-gate 1688*0Sstevel@tonic-gate=item Bulgaria 1689*0Sstevel@tonic-gate 1690*0Sstevel@tonic-gate http://cpan.online.bg 1691*0Sstevel@tonic-gate ftp://cpan.online.bg/cpan 1692*0Sstevel@tonic-gate http://cpan.zadnik.org 1693*0Sstevel@tonic-gate ftp://ftp.zadnik.org/mirrors/CPAN/ 1694*0Sstevel@tonic-gate http://cpan.lirex.net/ 1695*0Sstevel@tonic-gate ftp://ftp.lirex.net/pub/mirrors/CPAN 1696*0Sstevel@tonic-gate 1697*0Sstevel@tonic-gate=item Croatia 1698*0Sstevel@tonic-gate 1699*0Sstevel@tonic-gate http://ftp.linux.hr/pub/CPAN/ 1700*0Sstevel@tonic-gate ftp://ftp.linux.hr/pub/CPAN/ 1701*0Sstevel@tonic-gate 1702*0Sstevel@tonic-gate=item Czech Republic 1703*0Sstevel@tonic-gate 1704*0Sstevel@tonic-gate ftp://ftp.fi.muni.cz/pub/CPAN/ 1705*0Sstevel@tonic-gate ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/ 1706*0Sstevel@tonic-gate 1707*0Sstevel@tonic-gate=item Denmark 1708*0Sstevel@tonic-gate 1709*0Sstevel@tonic-gate http://mirrors.sunsite.dk/cpan/ 1710*0Sstevel@tonic-gate ftp://sunsite.dk/mirrors/cpan/ 1711*0Sstevel@tonic-gate http://cpan.cybercity.dk 1712*0Sstevel@tonic-gate http://www.cpan.dk/CPAN/ 1713*0Sstevel@tonic-gate ftp://www.cpan.dk/ftp.cpan.org/CPAN/ 1714*0Sstevel@tonic-gate 1715*0Sstevel@tonic-gate=item Estonia 1716*0Sstevel@tonic-gate 1717*0Sstevel@tonic-gate ftp://ftp.ut.ee/pub/languages/perl/CPAN/ 1718*0Sstevel@tonic-gate 1719*0Sstevel@tonic-gate=item Finland 1720*0Sstevel@tonic-gate 1721*0Sstevel@tonic-gate ftp://ftp.funet.fi/pub/languages/perl/CPAN/ 1722*0Sstevel@tonic-gate http://mirror.eunet.fi/CPAN 1723*0Sstevel@tonic-gate 1724*0Sstevel@tonic-gate=item France 1725*0Sstevel@tonic-gate 1726*0Sstevel@tonic-gate http://www.enstimac.fr/Perl/CPAN 1727*0Sstevel@tonic-gate http://ftp.u-paris10.fr/perl/CPAN 1728*0Sstevel@tonic-gate ftp://ftp.u-paris10.fr/perl/CPAN 1729*0Sstevel@tonic-gate http://cpan.mirrors.easynet.fr/ 1730*0Sstevel@tonic-gate ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/ 1731*0Sstevel@tonic-gate ftp://ftp.club-internet.fr/pub/perl/CPAN/ 1732*0Sstevel@tonic-gate http://fr.cpan.org/ 1733*0Sstevel@tonic-gate ftp://ftp.lip6.fr/pub/perl/CPAN/ 1734*0Sstevel@tonic-gate ftp://ftp.oleane.net/pub/mirrors/CPAN/ 1735*0Sstevel@tonic-gate ftp://ftp.pasteur.fr/pub/computing/CPAN/ 1736*0Sstevel@tonic-gate http://mir2.ovh.net/ftp.cpan.org 1737*0Sstevel@tonic-gate ftp://mir1.ovh.net/ftp.cpan.org 1738*0Sstevel@tonic-gate http://ftp.crihan.fr/mirrors/ftp.cpan.org/ 1739*0Sstevel@tonic-gate ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/ 1740*0Sstevel@tonic-gate http://ftp.u-strasbg.fr/CPAN 1741*0Sstevel@tonic-gate ftp://ftp.u-strasbg.fr/CPAN 1742*0Sstevel@tonic-gate ftp://cpan.cict.fr/pub/CPAN/ 1743*0Sstevel@tonic-gate ftp://ftp.uvsq.fr/pub/perl/CPAN/ 1744*0Sstevel@tonic-gate 1745*0Sstevel@tonic-gate=item Germany 1746*0Sstevel@tonic-gate 1747*0Sstevel@tonic-gate ftp://ftp.rub.de/pub/CPAN/ 1748*0Sstevel@tonic-gate ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/ 1749*0Sstevel@tonic-gate ftp://ftp.uni-erlangen.de/pub/source/CPAN/ 1750*0Sstevel@tonic-gate ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN 1751*0Sstevel@tonic-gate http://pandemonium.tiscali.de/pub/CPAN/ 1752*0Sstevel@tonic-gate ftp://pandemonium.tiscali.de/pub/CPAN/ 1753*0Sstevel@tonic-gate http://ftp.gwdg.de/pub/languages/perl/CPAN/ 1754*0Sstevel@tonic-gate ftp://ftp.gwdg.de/pub/languages/perl/CPAN/ 1755*0Sstevel@tonic-gate ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/ 1756*0Sstevel@tonic-gate ftp://ftp.leo.org/pub/CPAN/ 1757*0Sstevel@tonic-gate http://cpan.noris.de/ 1758*0Sstevel@tonic-gate ftp://cpan.noris.de/pub/CPAN/ 1759*0Sstevel@tonic-gate ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/ 1760*0Sstevel@tonic-gate ftp://ftp.gmd.de/mirrors/CPAN/ 1761*0Sstevel@tonic-gate 1762*0Sstevel@tonic-gate=item Greece 1763*0Sstevel@tonic-gate 1764*0Sstevel@tonic-gate ftp://ftp.acn.gr/pub/lang/perl 1765*0Sstevel@tonic-gate ftp://ftp.forthnet.gr/pub/languages/perl/CPAN 1766*0Sstevel@tonic-gate ftp://ftp.ntua.gr/pub/lang/perl/ 1767*0Sstevel@tonic-gate 1768*0Sstevel@tonic-gate=item Hungary 1769*0Sstevel@tonic-gate 1770*0Sstevel@tonic-gate http://ftp.kfki.hu/packages/perl/CPAN/ 1771*0Sstevel@tonic-gate ftp://ftp.kfki.hu/pub/packages/perl/CPAN/ 1772*0Sstevel@tonic-gate 1773*0Sstevel@tonic-gate=item Iceland 1774*0Sstevel@tonic-gate 1775*0Sstevel@tonic-gate http://ftp.rhnet.is/pub/CPAN/ 1776*0Sstevel@tonic-gate ftp://ftp.rhnet.is/pub/CPAN/ 1777*0Sstevel@tonic-gate 1778*0Sstevel@tonic-gate=item Ireland 1779*0Sstevel@tonic-gate 1780*0Sstevel@tonic-gate http://cpan.indigo.ie/ 1781*0Sstevel@tonic-gate ftp://cpan.indigo.ie/pub/CPAN/ 1782*0Sstevel@tonic-gate http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN 1783*0Sstevel@tonic-gate ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN 1784*0Sstevel@tonic-gate http://sunsite.compapp.dcu.ie/pub/perl/ 1785*0Sstevel@tonic-gate ftp://sunsite.compapp.dcu.ie/pub/perl/ 1786*0Sstevel@tonic-gate 1787*0Sstevel@tonic-gate=item Italy 1788*0Sstevel@tonic-gate 1789*0Sstevel@tonic-gate http://cpan.nettuno.it/ 1790*0Sstevel@tonic-gate http://gusp.dyndns.org/CPAN/ 1791*0Sstevel@tonic-gate ftp://gusp.dyndns.org/pub/CPAN 1792*0Sstevel@tonic-gate http://softcity.iol.it/cpan 1793*0Sstevel@tonic-gate ftp://softcity.iol.it/pub/cpan 1794*0Sstevel@tonic-gate ftp://ftp.unina.it/pub/Other/CPAN/CPAN/ 1795*0Sstevel@tonic-gate ftp://ftp.unipi.it/pub/mirror/perl/CPAN/ 1796*0Sstevel@tonic-gate ftp://cis.uniRoma2.it/CPAN/ 1797*0Sstevel@tonic-gate ftp://ftp.edisontel.it/pub/CPAN_Mirror/ 1798*0Sstevel@tonic-gate http://cpan.flashnet.it/ 1799*0Sstevel@tonic-gate ftp://ftp.flashnet.it/pub/CPAN/ 1800*0Sstevel@tonic-gate 1801*0Sstevel@tonic-gate=item Latvia 1802*0Sstevel@tonic-gate 1803*0Sstevel@tonic-gate http://kvin.lv/pub/CPAN/ 1804*0Sstevel@tonic-gate 1805*0Sstevel@tonic-gate=item Lithuania 1806*0Sstevel@tonic-gate 1807*0Sstevel@tonic-gate ftp://ftp.unix.lt/pub/CPAN/ 1808*0Sstevel@tonic-gate 1809*0Sstevel@tonic-gate=item Netherlands 1810*0Sstevel@tonic-gate 1811*0Sstevel@tonic-gate ftp://download.xs4all.nl/pub/mirror/CPAN/ 1812*0Sstevel@tonic-gate ftp://ftp.nl.uu.net/pub/CPAN/ 1813*0Sstevel@tonic-gate ftp://ftp.nluug.nl/pub/languages/perl/CPAN/ 1814*0Sstevel@tonic-gate http://cpan.cybercomm.nl/ 1815*0Sstevel@tonic-gate ftp://mirror.cybercomm.nl/pub/CPAN 1816*0Sstevel@tonic-gate ftp://mirror.vuurwerk.nl/pub/CPAN/ 1817*0Sstevel@tonic-gate ftp://ftp.cpan.nl/pub/CPAN/ 1818*0Sstevel@tonic-gate http://ftp.easynet.nl/mirror/CPAN 1819*0Sstevel@tonic-gate ftp://ftp.easynet.nl/mirror/CPAN 1820*0Sstevel@tonic-gate http://archive.cs.uu.nl/mirror/CPAN/ 1821*0Sstevel@tonic-gate ftp://ftp.cs.uu.nl/mirror/CPAN/ 1822*0Sstevel@tonic-gate 1823*0Sstevel@tonic-gate=item Norway 1824*0Sstevel@tonic-gate 1825*0Sstevel@tonic-gate ftp://ftp.uninett.no/pub/languages/perl/CPAN 1826*0Sstevel@tonic-gate ftp://ftp.uit.no/pub/languages/perl/cpan/ 1827*0Sstevel@tonic-gate 1828*0Sstevel@tonic-gate=item Poland 1829*0Sstevel@tonic-gate 1830*0Sstevel@tonic-gate ftp://ftp.mega.net.pl/CPAN 1831*0Sstevel@tonic-gate ftp://ftp.man.torun.pl/pub/doc/CPAN/ 1832*0Sstevel@tonic-gate ftp://sunsite.icm.edu.pl/pub/CPAN/ 1833*0Sstevel@tonic-gate 1834*0Sstevel@tonic-gate=item Portugal 1835*0Sstevel@tonic-gate 1836*0Sstevel@tonic-gate ftp://ftp.ua.pt/pub/CPAN/ 1837*0Sstevel@tonic-gate ftp://perl.di.uminho.pt/pub/CPAN/ 1838*0Sstevel@tonic-gate http://cpan.dei.uc.pt/ 1839*0Sstevel@tonic-gate ftp://ftp.dei.uc.pt/pub/CPAN 1840*0Sstevel@tonic-gate ftp://ftp.nfsi.pt/pub/CPAN 1841*0Sstevel@tonic-gate http://ftp.linux.pt/pub/mirrors/CPAN 1842*0Sstevel@tonic-gate ftp://ftp.linux.pt/pub/mirrors/CPAN 1843*0Sstevel@tonic-gate http://cpan.ip.pt/ 1844*0Sstevel@tonic-gate ftp://cpan.ip.pt/pub/cpan/ 1845*0Sstevel@tonic-gate http://cpan.telepac.pt/ 1846*0Sstevel@tonic-gate ftp://ftp.telepac.pt/pub/cpan/ 1847*0Sstevel@tonic-gate 1848*0Sstevel@tonic-gate=item Romania 1849*0Sstevel@tonic-gate 1850*0Sstevel@tonic-gate ftp://ftp.bio-net.ro/pub/CPAN 1851*0Sstevel@tonic-gate ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/ 1852*0Sstevel@tonic-gate ftp://ftp.lug.ro/CPAN 1853*0Sstevel@tonic-gate ftp://ftp.roedu.net/pub/CPAN/ 1854*0Sstevel@tonic-gate ftp://ftp.dntis.ro/pub/cpan/ 1855*0Sstevel@tonic-gate ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/ 1856*0Sstevel@tonic-gate http://cpan.ambra.ro/ 1857*0Sstevel@tonic-gate ftp://ftp.ambra.ro/pub/CPAN 1858*0Sstevel@tonic-gate ftp://ftp.dnttm.ro/pub/CPAN/ 1859*0Sstevel@tonic-gate ftp://ftp.lasting.ro/pub/CPAN 1860*0Sstevel@tonic-gate ftp://ftp.timisoara.roedu.net/mirrors/CPAN/ 1861*0Sstevel@tonic-gate 1862*0Sstevel@tonic-gate=item Russia 1863*0Sstevel@tonic-gate 1864*0Sstevel@tonic-gate ftp://ftp.chg.ru/pub/lang/perl/CPAN/ 1865*0Sstevel@tonic-gate http://cpan.rinet.ru/ 1866*0Sstevel@tonic-gate ftp://cpan.rinet.ru/pub/mirror/CPAN/ 1867*0Sstevel@tonic-gate ftp://ftp.aha.ru/pub/CPAN/ 1868*0Sstevel@tonic-gate ftp://ftp.corbina.ru/pub/CPAN/ 1869*0Sstevel@tonic-gate http://cpan.sai.msu.ru/ 1870*0Sstevel@tonic-gate ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/ 1871*0Sstevel@tonic-gate 1872*0Sstevel@tonic-gate=item Slovakia 1873*0Sstevel@tonic-gate 1874*0Sstevel@tonic-gate ftp://ftp.cvt.stuba.sk/pub/CPAN/ 1875*0Sstevel@tonic-gate 1876*0Sstevel@tonic-gate=item Slovenia 1877*0Sstevel@tonic-gate 1878*0Sstevel@tonic-gate ftp://ftp.arnes.si/software/perl/CPAN/ 1879*0Sstevel@tonic-gate 1880*0Sstevel@tonic-gate=item Spain 1881*0Sstevel@tonic-gate 1882*0Sstevel@tonic-gate http://cpan.imasd.elmundo.es/ 1883*0Sstevel@tonic-gate ftp://ftp.rediris.es/mirror/CPAN/ 1884*0Sstevel@tonic-gate ftp://ftp.ri.telefonica-data.net/CPAN 1885*0Sstevel@tonic-gate ftp://ftp.etse.urv.es/pub/perl/ 1886*0Sstevel@tonic-gate 1887*0Sstevel@tonic-gate=item Sweden 1888*0Sstevel@tonic-gate 1889*0Sstevel@tonic-gate http://ftp.du.se/CPAN/ 1890*0Sstevel@tonic-gate ftp://ftp.du.se/pub/CPAN/ 1891*0Sstevel@tonic-gate http://mirror.dataphone.se/CPAN 1892*0Sstevel@tonic-gate ftp://mirror.dataphone.se/pub/CPAN 1893*0Sstevel@tonic-gate ftp://ftp.sunet.se/pub/lang/perl/CPAN/ 1894*0Sstevel@tonic-gate 1895*0Sstevel@tonic-gate=item Switzerland 1896*0Sstevel@tonic-gate 1897*0Sstevel@tonic-gate http://cpan.mirror.solnet.ch/ 1898*0Sstevel@tonic-gate ftp://ftp.solnet.ch/mirror/CPAN/ 1899*0Sstevel@tonic-gate ftp://ftp.danyk.ch/CPAN/ 1900*0Sstevel@tonic-gate ftp://sunsite.cnlab-switch.ch/mirror/CPAN/ 1901*0Sstevel@tonic-gate 1902*0Sstevel@tonic-gate=item Turkey 1903*0Sstevel@tonic-gate 1904*0Sstevel@tonic-gate http://ftp.ulak.net.tr/perl/CPAN/ 1905*0Sstevel@tonic-gate ftp://ftp.ulak.net.tr/perl/CPAN 1906*0Sstevel@tonic-gate ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/ 1907*0Sstevel@tonic-gate 1908*0Sstevel@tonic-gate=item Ukraine 1909*0Sstevel@tonic-gate 1910*0Sstevel@tonic-gate http://cpan.org.ua/ 1911*0Sstevel@tonic-gate ftp://cpan.org.ua/ 1912*0Sstevel@tonic-gate ftp://ftp.perl.org.ua/pub/CPAN/ 1913*0Sstevel@tonic-gate http://no-more.kiev.ua/CPAN/ 1914*0Sstevel@tonic-gate ftp://no-more.kiev.ua/pub/CPAN/ 1915*0Sstevel@tonic-gate 1916*0Sstevel@tonic-gate=item United Kingdom 1917*0Sstevel@tonic-gate 1918*0Sstevel@tonic-gate http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN 1919*0Sstevel@tonic-gate ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/ 1920*0Sstevel@tonic-gate http://cpan.teleglobe.net/ 1921*0Sstevel@tonic-gate ftp://cpan.teleglobe.net/pub/CPAN 1922*0Sstevel@tonic-gate http://cpan.mirror.anlx.net/ 1923*0Sstevel@tonic-gate ftp://ftp.mirror.anlx.net/CPAN/ 1924*0Sstevel@tonic-gate http://cpan.etla.org/ 1925*0Sstevel@tonic-gate ftp://cpan.etla.org/pub/CPAN 1926*0Sstevel@tonic-gate ftp://ftp.demon.co.uk/pub/CPAN/ 1927*0Sstevel@tonic-gate http://cpan.m.flirble.org/ 1928*0Sstevel@tonic-gate ftp://ftp.flirble.org/pub/languages/perl/CPAN/ 1929*0Sstevel@tonic-gate ftp://ftp.plig.org/pub/CPAN/ 1930*0Sstevel@tonic-gate http://cpan.hambule.co.uk/ 1931*0Sstevel@tonic-gate http://cpan.mirrors.clockerz.net/ 1932*0Sstevel@tonic-gate ftp://ftp.clockerz.net/pub/CPAN/ 1933*0Sstevel@tonic-gate ftp://usit.shef.ac.uk/pub/packages/CPAN/ 1934*0Sstevel@tonic-gate 1935*0Sstevel@tonic-gate=back 1936*0Sstevel@tonic-gate 1937*0Sstevel@tonic-gate=head2 North America 1938*0Sstevel@tonic-gate 1939*0Sstevel@tonic-gate=over 4 1940*0Sstevel@tonic-gate 1941*0Sstevel@tonic-gate=item Canada 1942*0Sstevel@tonic-gate 1943*0Sstevel@tonic-gate=over 8 1944*0Sstevel@tonic-gate 1945*0Sstevel@tonic-gate=item Alberta 1946*0Sstevel@tonic-gate 1947*0Sstevel@tonic-gate http://cpan.sunsite.ualberta.ca/ 1948*0Sstevel@tonic-gate ftp://cpan.sunsite.ualberta.ca/pub/CPAN/ 1949*0Sstevel@tonic-gate 1950*0Sstevel@tonic-gate=item Manitoba 1951*0Sstevel@tonic-gate 1952*0Sstevel@tonic-gate http://theoryx5.uwinnipeg.ca/pub/CPAN/ 1953*0Sstevel@tonic-gate ftp://theoryx5.uwinnipeg.ca/pub/CPAN/ 1954*0Sstevel@tonic-gate 1955*0Sstevel@tonic-gate=item Nova Scotia 1956*0Sstevel@tonic-gate 1957*0Sstevel@tonic-gate ftp://cpan.chebucto.ns.ca/pub/CPAN/ 1958*0Sstevel@tonic-gate 1959*0Sstevel@tonic-gate=item Ontario 1960*0Sstevel@tonic-gate 1961*0Sstevel@tonic-gate ftp://ftp.nrc.ca/pub/CPAN/ 1962*0Sstevel@tonic-gate 1963*0Sstevel@tonic-gate=back 1964*0Sstevel@tonic-gate 1965*0Sstevel@tonic-gate=item Mexico 1966*0Sstevel@tonic-gate 1967*0Sstevel@tonic-gate http://cpan.azc.uam.mx 1968*0Sstevel@tonic-gate ftp://cpan.azc.uam.mx/mirrors/CPAN 1969*0Sstevel@tonic-gate http://www.cpan.unam.mx/ 1970*0Sstevel@tonic-gate ftp://ftp.unam.mx/pub/CPAN 1971*0Sstevel@tonic-gate http://www.msg.com.mx/CPAN/ 1972*0Sstevel@tonic-gate ftp://ftp.msg.com.mx/pub/CPAN/ 1973*0Sstevel@tonic-gate 1974*0Sstevel@tonic-gate=item United States 1975*0Sstevel@tonic-gate 1976*0Sstevel@tonic-gate=over 8 1977*0Sstevel@tonic-gate 1978*0Sstevel@tonic-gate=item Alabama 1979*0Sstevel@tonic-gate 1980*0Sstevel@tonic-gate http://mirror.hiwaay.net/CPAN/ 1981*0Sstevel@tonic-gate ftp://mirror.hiwaay.net/CPAN/ 1982*0Sstevel@tonic-gate 1983*0Sstevel@tonic-gate=item California 1984*0Sstevel@tonic-gate 1985*0Sstevel@tonic-gate http://cpan.develooper.com/ 1986*0Sstevel@tonic-gate http://www.cpan.org/ 1987*0Sstevel@tonic-gate ftp://cpan.valueclick.com/pub/CPAN/ 1988*0Sstevel@tonic-gate http://www.mednor.net/ftp/pub/mirrors/CPAN/ 1989*0Sstevel@tonic-gate ftp://ftp.mednor.net/pub/mirrors/CPAN/ 1990*0Sstevel@tonic-gate http://mirrors.gossamer-threads.com/CPAN 1991*0Sstevel@tonic-gate ftp://cpan.nas.nasa.gov/pub/perl/CPAN/ 1992*0Sstevel@tonic-gate http://mirrors.kernel.org/cpan/ 1993*0Sstevel@tonic-gate ftp://mirrors.kernel.org/pub/CPAN 1994*0Sstevel@tonic-gate http://cpan-sj.viaverio.com/ 1995*0Sstevel@tonic-gate ftp://cpan-sj.viaverio.com/pub/CPAN/ 1996*0Sstevel@tonic-gate http://cpan.digisle.net/ 1997*0Sstevel@tonic-gate ftp://cpan.digisle.net/pub/CPAN 1998*0Sstevel@tonic-gate http://www.perl.com/CPAN/ 1999*0Sstevel@tonic-gate http://www.uberlan.net/CPAN 2000*0Sstevel@tonic-gate 2001*0Sstevel@tonic-gate=item Colorado 2002*0Sstevel@tonic-gate 2003*0Sstevel@tonic-gate ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ 2004*0Sstevel@tonic-gate http://cpan.four10.com 2005*0Sstevel@tonic-gate 2006*0Sstevel@tonic-gate=item Delaware 2007*0Sstevel@tonic-gate 2008*0Sstevel@tonic-gate http://ftp.lug.udel.edu/pub/CPAN 2009*0Sstevel@tonic-gate ftp://ftp.lug.udel.edu/pub/CPAN 2010*0Sstevel@tonic-gate 2011*0Sstevel@tonic-gate=item District of Columbia 2012*0Sstevel@tonic-gate 2013*0Sstevel@tonic-gate ftp://ftp.dc.aleron.net/pub/CPAN/ 2014*0Sstevel@tonic-gate 2015*0Sstevel@tonic-gate=item Florida 2016*0Sstevel@tonic-gate 2017*0Sstevel@tonic-gate ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/ 2018*0Sstevel@tonic-gate http://mirror.csit.fsu.edu/pub/CPAN/ 2019*0Sstevel@tonic-gate ftp://mirror.csit.fsu.edu/pub/CPAN/ 2020*0Sstevel@tonic-gate http://cpan.mirrors.nks.net/ 2021*0Sstevel@tonic-gate 2022*0Sstevel@tonic-gate=item Indiana 2023*0Sstevel@tonic-gate 2024*0Sstevel@tonic-gate ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/ 2025*0Sstevel@tonic-gate http://cpan.netnitco.net/ 2026*0Sstevel@tonic-gate ftp://cpan.netnitco.net/pub/mirrors/CPAN/ 2027*0Sstevel@tonic-gate http://archive.progeny.com/CPAN/ 2028*0Sstevel@tonic-gate ftp://archive.progeny.com/CPAN/ 2029*0Sstevel@tonic-gate http://fx.saintjoe.edu/pub/CPAN 2030*0Sstevel@tonic-gate ftp://ftp.saintjoe.edu/pub/CPAN 2031*0Sstevel@tonic-gate http://csociety-ftp.ecn.purdue.edu/pub/CPAN 2032*0Sstevel@tonic-gate ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN 2033*0Sstevel@tonic-gate 2034*0Sstevel@tonic-gate=item Kentucky 2035*0Sstevel@tonic-gate 2036*0Sstevel@tonic-gate http://cpan.uky.edu/ 2037*0Sstevel@tonic-gate ftp://cpan.uky.edu/pub/CPAN/ 2038*0Sstevel@tonic-gate http://slugsite.louisville.edu/cpan 2039*0Sstevel@tonic-gate ftp://slugsite.louisville.edu/CPAN 2040*0Sstevel@tonic-gate 2041*0Sstevel@tonic-gate=item Massachusetts 2042*0Sstevel@tonic-gate 2043*0Sstevel@tonic-gate http://mirrors.towardex.com/CPAN 2044*0Sstevel@tonic-gate ftp://mirrors.towardex.com/pub/CPAN 2045*0Sstevel@tonic-gate ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/ 2046*0Sstevel@tonic-gate 2047*0Sstevel@tonic-gate=item Michigan 2048*0Sstevel@tonic-gate 2049*0Sstevel@tonic-gate ftp://cpan.cse.msu.edu/ 2050*0Sstevel@tonic-gate http://cpan.calvin.edu/pub/CPAN 2051*0Sstevel@tonic-gate ftp://cpan.calvin.edu/pub/CPAN 2052*0Sstevel@tonic-gate 2053*0Sstevel@tonic-gate=item Nevada 2054*0Sstevel@tonic-gate 2055*0Sstevel@tonic-gate http://www.oss.redundant.com/pub/CPAN 2056*0Sstevel@tonic-gate ftp://www.oss.redundant.com/pub/CPAN 2057*0Sstevel@tonic-gate 2058*0Sstevel@tonic-gate=item New Jersey 2059*0Sstevel@tonic-gate 2060*0Sstevel@tonic-gate http://ftp.cpanel.net/pub/CPAN/ 2061*0Sstevel@tonic-gate ftp://ftp.cpanel.net/pub/CPAN/ 2062*0Sstevel@tonic-gate http://cpan.teleglobe.net/ 2063*0Sstevel@tonic-gate ftp://cpan.teleglobe.net/pub/CPAN 2064*0Sstevel@tonic-gate 2065*0Sstevel@tonic-gate=item New York 2066*0Sstevel@tonic-gate 2067*0Sstevel@tonic-gate http://cpan.belfry.net/ 2068*0Sstevel@tonic-gate http://cpan.erlbaum.net/ 2069*0Sstevel@tonic-gate ftp://cpan.erlbaum.net/ 2070*0Sstevel@tonic-gate http://cpan.thepirtgroup.com/ 2071*0Sstevel@tonic-gate ftp://cpan.thepirtgroup.com/ 2072*0Sstevel@tonic-gate ftp://ftp.stealth.net/pub/CPAN/ 2073*0Sstevel@tonic-gate http://www.rge.com/pub/languages/perl/ 2074*0Sstevel@tonic-gate ftp://ftp.rge.com/pub/languages/perl/ 2075*0Sstevel@tonic-gate 2076*0Sstevel@tonic-gate=item North Carolina 2077*0Sstevel@tonic-gate 2078*0Sstevel@tonic-gate http://www.ibiblio.org/pub/languages/perl/CPAN 2079*0Sstevel@tonic-gate ftp://ftp.ibiblio.org/pub/languages/perl/CPAN 2080*0Sstevel@tonic-gate ftp://ftp.duke.edu/pub/perl/ 2081*0Sstevel@tonic-gate ftp://ftp.ncsu.edu/pub/mirror/CPAN/ 2082*0Sstevel@tonic-gate 2083*0Sstevel@tonic-gate=item Oklahoma 2084*0Sstevel@tonic-gate 2085*0Sstevel@tonic-gate ftp://ftp.ou.edu/mirrors/CPAN/ 2086*0Sstevel@tonic-gate 2087*0Sstevel@tonic-gate=item Oregon 2088*0Sstevel@tonic-gate 2089*0Sstevel@tonic-gate ftp://ftp.orst.edu/pub/CPAN 2090*0Sstevel@tonic-gate 2091*0Sstevel@tonic-gate=item Pennsylvania 2092*0Sstevel@tonic-gate 2093*0Sstevel@tonic-gate http://ftp.epix.net/CPAN/ 2094*0Sstevel@tonic-gate ftp://ftp.epix.net/pub/languages/perl/ 2095*0Sstevel@tonic-gate http://mirrors.phenominet.com/pub/CPAN/ 2096*0Sstevel@tonic-gate ftp://mirrors.phenominet.com/pub/CPAN/ 2097*0Sstevel@tonic-gate http://cpan.pair.com/ 2098*0Sstevel@tonic-gate ftp://cpan.pair.com/pub/CPAN/ 2099*0Sstevel@tonic-gate ftp://carroll.cac.psu.edu/pub/CPAN/ 2100*0Sstevel@tonic-gate 2101*0Sstevel@tonic-gate=item Tennessee 2102*0Sstevel@tonic-gate 2103*0Sstevel@tonic-gate ftp://ftp.sunsite.utk.edu/pub/CPAN/ 2104*0Sstevel@tonic-gate 2105*0Sstevel@tonic-gate=item Texas 2106*0Sstevel@tonic-gate 2107*0Sstevel@tonic-gate http://ftp.sedl.org/pub/mirrors/CPAN/ 2108*0Sstevel@tonic-gate http://www.binarycode.org/cpan 2109*0Sstevel@tonic-gate ftp://mirror.telentente.com/pub/CPAN 2110*0Sstevel@tonic-gate http://mirrors.theonlinerecordstore.com/CPAN 2111*0Sstevel@tonic-gate 2112*0Sstevel@tonic-gate=item Utah 2113*0Sstevel@tonic-gate 2114*0Sstevel@tonic-gate ftp://mirror.xmission.com/CPAN/ 2115*0Sstevel@tonic-gate 2116*0Sstevel@tonic-gate=item Virginia 2117*0Sstevel@tonic-gate 2118*0Sstevel@tonic-gate http://cpan-du.viaverio.com/ 2119*0Sstevel@tonic-gate ftp://cpan-du.viaverio.com/pub/CPAN/ 2120*0Sstevel@tonic-gate http://mirrors.rcn.net/pub/lang/CPAN/ 2121*0Sstevel@tonic-gate ftp://mirrors.rcn.net/pub/lang/CPAN/ 2122*0Sstevel@tonic-gate http://perl.secsup.org/ 2123*0Sstevel@tonic-gate ftp://perl.secsup.org/pub/perl/ 2124*0Sstevel@tonic-gate http://noc.cvaix.com/mirrors/CPAN/ 2125*0Sstevel@tonic-gate 2126*0Sstevel@tonic-gate=item Washington 2127*0Sstevel@tonic-gate 2128*0Sstevel@tonic-gate http://cpan.llarian.net/ 2129*0Sstevel@tonic-gate ftp://cpan.llarian.net/pub/CPAN/ 2130*0Sstevel@tonic-gate http://cpan.mirrorcentral.com/ 2131*0Sstevel@tonic-gate ftp://ftp.mirrorcentral.com/pub/CPAN/ 2132*0Sstevel@tonic-gate ftp://ftp-mirror.internap.com/pub/CPAN/ 2133*0Sstevel@tonic-gate 2134*0Sstevel@tonic-gate=item Wisconsin 2135*0Sstevel@tonic-gate 2136*0Sstevel@tonic-gate http://mirror.sit.wisc.edu/pub/CPAN/ 2137*0Sstevel@tonic-gate ftp://mirror.sit.wisc.edu/pub/CPAN/ 2138*0Sstevel@tonic-gate http://mirror.aphix.com/CPAN 2139*0Sstevel@tonic-gate ftp://mirror.aphix.com/pub/CPAN 2140*0Sstevel@tonic-gate 2141*0Sstevel@tonic-gate=back 2142*0Sstevel@tonic-gate 2143*0Sstevel@tonic-gate=back 2144*0Sstevel@tonic-gate 2145*0Sstevel@tonic-gate=head2 Oceania 2146*0Sstevel@tonic-gate 2147*0Sstevel@tonic-gate=over 4 2148*0Sstevel@tonic-gate 2149*0Sstevel@tonic-gate=item Australia 2150*0Sstevel@tonic-gate 2151*0Sstevel@tonic-gate http://ftp.planetmirror.com/pub/CPAN/ 2152*0Sstevel@tonic-gate ftp://ftp.planetmirror.com/pub/CPAN/ 2153*0Sstevel@tonic-gate ftp://mirror.aarnet.edu.au/pub/perl/CPAN/ 2154*0Sstevel@tonic-gate ftp://cpan.topend.com.au/pub/CPAN/ 2155*0Sstevel@tonic-gate http://cpan.mirrors.ilisys.com.au 2156*0Sstevel@tonic-gate 2157*0Sstevel@tonic-gate=item New Zealand 2158*0Sstevel@tonic-gate 2159*0Sstevel@tonic-gate ftp://ftp.auckland.ac.nz/pub/perl/CPAN/ 2160*0Sstevel@tonic-gate 2161*0Sstevel@tonic-gate=item United States 2162*0Sstevel@tonic-gate 2163*0Sstevel@tonic-gate http://aniani.ifa.hawaii.edu/CPAN/ 2164*0Sstevel@tonic-gate ftp://aniani.ifa.hawaii.edu/CPAN/ 2165*0Sstevel@tonic-gate 2166*0Sstevel@tonic-gate=back 2167*0Sstevel@tonic-gate 2168*0Sstevel@tonic-gate=head2 South America 2169*0Sstevel@tonic-gate 2170*0Sstevel@tonic-gate=over 4 2171*0Sstevel@tonic-gate 2172*0Sstevel@tonic-gate=item Argentina 2173*0Sstevel@tonic-gate 2174*0Sstevel@tonic-gate ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/ 2175*0Sstevel@tonic-gate http://www.linux.org.ar/mirrors/cpan 2176*0Sstevel@tonic-gate ftp://ftp.linux.org.ar/mirrors/cpan 2177*0Sstevel@tonic-gate 2178*0Sstevel@tonic-gate=item Brazil 2179*0Sstevel@tonic-gate 2180*0Sstevel@tonic-gate ftp://cpan.pop-mg.com.br/pub/CPAN/ 2181*0Sstevel@tonic-gate ftp://ftp.matrix.com.br/pub/perl/CPAN/ 2182*0Sstevel@tonic-gate http://cpan.hostsul.com.br/ 2183*0Sstevel@tonic-gate ftp://cpan.hostsul.com.br/ 2184*0Sstevel@tonic-gate 2185*0Sstevel@tonic-gate=item Chile 2186*0Sstevel@tonic-gate 2187*0Sstevel@tonic-gate http://cpan.netglobalis.net/ 2188*0Sstevel@tonic-gate ftp://cpan.netglobalis.net/pub/CPAN/ 2189*0Sstevel@tonic-gate 2190*0Sstevel@tonic-gate=back 2191*0Sstevel@tonic-gate 2192*0Sstevel@tonic-gate=head2 RSYNC Mirrors 2193*0Sstevel@tonic-gate 2194*0Sstevel@tonic-gate www.linux.org.ar::cpan 2195*0Sstevel@tonic-gate theoryx5.uwinnipeg.ca::CPAN 2196*0Sstevel@tonic-gate ftp.shellhung.org::CPAN 2197*0Sstevel@tonic-gate rsync.nic.funet.fi::CPAN 2198*0Sstevel@tonic-gate ftp.u-paris10.fr::CPAN 2199*0Sstevel@tonic-gate mir1.ovh.net::CPAN 2200*0Sstevel@tonic-gate rsync://ftp.crihan.fr::CPAN 2201*0Sstevel@tonic-gate ftp.gwdg.de::FTP/languages/perl/CPAN/ 2202*0Sstevel@tonic-gate ftp.leo.org::CPAN 2203*0Sstevel@tonic-gate ftp.cbn.net.id::CPAN 2204*0Sstevel@tonic-gate rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN 2205*0Sstevel@tonic-gate ftp.iglu.org.il::CPAN 2206*0Sstevel@tonic-gate gusp.dyndns.org::cpan 2207*0Sstevel@tonic-gate ftp.kddlabs.co.jp::cpan 2208*0Sstevel@tonic-gate ftp.ayamura.org::pub/CPAN/ 2209*0Sstevel@tonic-gate mirror.leafbug.org::CPAN 2210*0Sstevel@tonic-gate rsync.en.com.sg::CPAN 2211*0Sstevel@tonic-gate mirror.averse.net::cpan 2212*0Sstevel@tonic-gate rsync.oss.eznetsols.org 2213*0Sstevel@tonic-gate ftp.kr.FreeBSD.org::CPAN 2214*0Sstevel@tonic-gate ftp.solnet.ch::CPAN 2215*0Sstevel@tonic-gate cpan.cdpa.nsysu.edu.tw::CPAN 2216*0Sstevel@tonic-gate cpan.teleglobe.net::CPAN 2217*0Sstevel@tonic-gate rsync://rsync.mirror.anlx.net::CPAN 2218*0Sstevel@tonic-gate ftp.sedl.org::cpan 2219*0Sstevel@tonic-gate ibiblio.org::CPAN 2220*0Sstevel@tonic-gate cpan-du.viaverio.com::CPAN 2221*0Sstevel@tonic-gate aniani.ifa.hawaii.edu::CPAN 2222*0Sstevel@tonic-gate archive.progeny.com::CPAN 2223*0Sstevel@tonic-gate rsync://slugsite.louisville.edu::CPAN 2224*0Sstevel@tonic-gate mirror.aphix.com::CPAN 2225*0Sstevel@tonic-gate cpan.teleglobe.net::CPAN 2226*0Sstevel@tonic-gate ftp.lug.udel.edu::cpan 2227*0Sstevel@tonic-gate mirrors.kernel.org::mirrors/CPAN 2228*0Sstevel@tonic-gate mirrors.phenominet.com::CPAN 2229*0Sstevel@tonic-gate cpan.pair.com::CPAN 2230*0Sstevel@tonic-gate cpan-sj.viaverio.com::CPAN 2231*0Sstevel@tonic-gate mirror.csit.fsu.edu::CPAN 2232*0Sstevel@tonic-gate csociety-ftp.ecn.purdue.edu::CPAN 2233*0Sstevel@tonic-gate 2234*0Sstevel@tonic-gateFor an up-to-date listing of CPAN sites, 2235*0Sstevel@tonic-gatesee http://www.cpan.org/SITES or ftp://www.cpan.org/SITES . 2236*0Sstevel@tonic-gate 2237*0Sstevel@tonic-gate=head1 Modules: Creation, Use, and Abuse 2238*0Sstevel@tonic-gate 2239*0Sstevel@tonic-gate(The following section is borrowed directly from Tim Bunce's modules 2240*0Sstevel@tonic-gatefile, available at your nearest CPAN site.) 2241*0Sstevel@tonic-gate 2242*0Sstevel@tonic-gatePerl implements a class using a package, but the presence of a 2243*0Sstevel@tonic-gatepackage doesn't imply the presence of a class. A package is just a 2244*0Sstevel@tonic-gatenamespace. A class is a package that provides subroutines that can be 2245*0Sstevel@tonic-gateused as methods. A method is just a subroutine that expects, as its 2246*0Sstevel@tonic-gatefirst argument, either the name of a package (for "static" methods), 2247*0Sstevel@tonic-gateor a reference to something (for "virtual" methods). 2248*0Sstevel@tonic-gate 2249*0Sstevel@tonic-gateA module is a file that (by convention) provides a class of the same 2250*0Sstevel@tonic-gatename (sans the .pm), plus an import method in that class that can be 2251*0Sstevel@tonic-gatecalled to fetch exported symbols. This module may implement some of 2252*0Sstevel@tonic-gateits methods by loading dynamic C or C++ objects, but that should be 2253*0Sstevel@tonic-gatetotally transparent to the user of the module. Likewise, the module 2254*0Sstevel@tonic-gatemight set up an AUTOLOAD function to slurp in subroutine definitions on 2255*0Sstevel@tonic-gatedemand, but this is also transparent. Only the F<.pm> file is required to 2256*0Sstevel@tonic-gateexist. See L<perlsub>, L<perltoot>, and L<AutoLoader> for details about 2257*0Sstevel@tonic-gatethe AUTOLOAD mechanism. 2258*0Sstevel@tonic-gate 2259*0Sstevel@tonic-gate=head2 Guidelines for Module Creation 2260*0Sstevel@tonic-gate 2261*0Sstevel@tonic-gate=over 4 2262*0Sstevel@tonic-gate 2263*0Sstevel@tonic-gate=item * 2264*0Sstevel@tonic-gate 2265*0Sstevel@tonic-gateDo similar modules already exist in some form? 2266*0Sstevel@tonic-gate 2267*0Sstevel@tonic-gateIf so, please try to reuse the existing modules either in whole or 2268*0Sstevel@tonic-gateby inheriting useful features into a new class. If this is not 2269*0Sstevel@tonic-gatepractical try to get together with the module authors to work on 2270*0Sstevel@tonic-gateextending or enhancing the functionality of the existing modules. 2271*0Sstevel@tonic-gateA perfect example is the plethora of packages in perl4 for dealing 2272*0Sstevel@tonic-gatewith command line options. 2273*0Sstevel@tonic-gate 2274*0Sstevel@tonic-gateIf you are writing a module to expand an already existing set of 2275*0Sstevel@tonic-gatemodules, please coordinate with the author of the package. It 2276*0Sstevel@tonic-gatehelps if you follow the same naming scheme and module interaction 2277*0Sstevel@tonic-gatescheme as the original author. 2278*0Sstevel@tonic-gate 2279*0Sstevel@tonic-gate=item * 2280*0Sstevel@tonic-gate 2281*0Sstevel@tonic-gateTry to design the new module to be easy to extend and reuse. 2282*0Sstevel@tonic-gate 2283*0Sstevel@tonic-gateTry to C<use warnings;> (or C<use warnings qw(...);>). 2284*0Sstevel@tonic-gateRemember that you can add C<no warnings qw(...);> to individual blocks 2285*0Sstevel@tonic-gateof code that need less warnings. 2286*0Sstevel@tonic-gate 2287*0Sstevel@tonic-gateUse blessed references. Use the two argument form of bless to bless 2288*0Sstevel@tonic-gateinto the class name given as the first parameter of the constructor, 2289*0Sstevel@tonic-gatee.g.,: 2290*0Sstevel@tonic-gate 2291*0Sstevel@tonic-gate sub new { 2292*0Sstevel@tonic-gate my $class = shift; 2293*0Sstevel@tonic-gate return bless {}, $class; 2294*0Sstevel@tonic-gate } 2295*0Sstevel@tonic-gate 2296*0Sstevel@tonic-gateor even this if you'd like it to be used as either a static 2297*0Sstevel@tonic-gateor a virtual method. 2298*0Sstevel@tonic-gate 2299*0Sstevel@tonic-gate sub new { 2300*0Sstevel@tonic-gate my $self = shift; 2301*0Sstevel@tonic-gate my $class = ref($self) || $self; 2302*0Sstevel@tonic-gate return bless {}, $class; 2303*0Sstevel@tonic-gate } 2304*0Sstevel@tonic-gate 2305*0Sstevel@tonic-gatePass arrays as references so more parameters can be added later 2306*0Sstevel@tonic-gate(it's also faster). Convert functions into methods where 2307*0Sstevel@tonic-gateappropriate. Split large methods into smaller more flexible ones. 2308*0Sstevel@tonic-gateInherit methods from other modules if appropriate. 2309*0Sstevel@tonic-gate 2310*0Sstevel@tonic-gateAvoid class name tests like: C<die "Invalid" unless ref $ref eq 'FOO'>. 2311*0Sstevel@tonic-gateGenerally you can delete the C<eq 'FOO'> part with no harm at all. 2312*0Sstevel@tonic-gateLet the objects look after themselves! Generally, avoid hard-wired 2313*0Sstevel@tonic-gateclass names as far as possible. 2314*0Sstevel@tonic-gate 2315*0Sstevel@tonic-gateAvoid C<< $r->Class::func() >> where using C<@ISA=qw(... Class ...)> and 2316*0Sstevel@tonic-gateC<< $r->func() >> would work (see L<perlbot> for more details). 2317*0Sstevel@tonic-gate 2318*0Sstevel@tonic-gateUse autosplit so little used or newly added functions won't be a 2319*0Sstevel@tonic-gateburden to programs that don't use them. Add test functions to 2320*0Sstevel@tonic-gatethe module after __END__ either using AutoSplit or by saying: 2321*0Sstevel@tonic-gate 2322*0Sstevel@tonic-gate eval join('',<main::DATA>) || die $@ unless caller(); 2323*0Sstevel@tonic-gate 2324*0Sstevel@tonic-gateDoes your module pass the 'empty subclass' test? If you say 2325*0Sstevel@tonic-gateC<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able 2326*0Sstevel@tonic-gateto use SUBCLASS in exactly the same way as YOURCLASS. For example, 2327*0Sstevel@tonic-gatedoes your application still work if you change: C<$obj = new YOURCLASS;> 2328*0Sstevel@tonic-gateinto: C<$obj = new SUBCLASS;> ? 2329*0Sstevel@tonic-gate 2330*0Sstevel@tonic-gateAvoid keeping any state information in your packages. It makes it 2331*0Sstevel@tonic-gatedifficult for multiple other packages to use yours. Keep state 2332*0Sstevel@tonic-gateinformation in objects. 2333*0Sstevel@tonic-gate 2334*0Sstevel@tonic-gateAlways use B<-w>. 2335*0Sstevel@tonic-gate 2336*0Sstevel@tonic-gateTry to C<use strict;> (or C<use strict qw(...);>). 2337*0Sstevel@tonic-gateRemember that you can add C<no strict qw(...);> to individual blocks 2338*0Sstevel@tonic-gateof code that need less strictness. 2339*0Sstevel@tonic-gate 2340*0Sstevel@tonic-gateAlways use B<-w>. 2341*0Sstevel@tonic-gate 2342*0Sstevel@tonic-gateFollow the guidelines in the perlstyle(1) manual. 2343*0Sstevel@tonic-gate 2344*0Sstevel@tonic-gateAlways use B<-w>. 2345*0Sstevel@tonic-gate 2346*0Sstevel@tonic-gate=item * 2347*0Sstevel@tonic-gate 2348*0Sstevel@tonic-gateSome simple style guidelines 2349*0Sstevel@tonic-gate 2350*0Sstevel@tonic-gateThe perlstyle manual supplied with Perl has many helpful points. 2351*0Sstevel@tonic-gate 2352*0Sstevel@tonic-gateCoding style is a matter of personal taste. Many people evolve their 2353*0Sstevel@tonic-gatestyle over several years as they learn what helps them write and 2354*0Sstevel@tonic-gatemaintain good code. Here's one set of assorted suggestions that 2355*0Sstevel@tonic-gateseem to be widely used by experienced developers: 2356*0Sstevel@tonic-gate 2357*0Sstevel@tonic-gateUse underscores to separate words. It is generally easier to read 2358*0Sstevel@tonic-gate$var_names_like_this than $VarNamesLikeThis, especially for 2359*0Sstevel@tonic-gatenon-native speakers of English. It's also a simple rule that works 2360*0Sstevel@tonic-gateconsistently with VAR_NAMES_LIKE_THIS. 2361*0Sstevel@tonic-gate 2362*0Sstevel@tonic-gatePackage/Module names are an exception to this rule. Perl informally 2363*0Sstevel@tonic-gatereserves lowercase module names for 'pragma' modules like integer 2364*0Sstevel@tonic-gateand strict. Other modules normally begin with a capital letter and 2365*0Sstevel@tonic-gateuse mixed case with no underscores (need to be short and portable). 2366*0Sstevel@tonic-gate 2367*0Sstevel@tonic-gateYou may find it helpful to use letter case to indicate the scope 2368*0Sstevel@tonic-gateor nature of a variable. For example: 2369*0Sstevel@tonic-gate 2370*0Sstevel@tonic-gate $ALL_CAPS_HERE constants only (beware clashes with Perl vars) 2371*0Sstevel@tonic-gate $Some_Caps_Here package-wide global/static 2372*0Sstevel@tonic-gate $no_caps_here function scope my() or local() variables 2373*0Sstevel@tonic-gate 2374*0Sstevel@tonic-gateFunction and method names seem to work best as all lowercase. 2375*0Sstevel@tonic-gatee.g., C<< $obj->as_string() >>. 2376*0Sstevel@tonic-gate 2377*0Sstevel@tonic-gateYou can use a leading underscore to indicate that a variable or 2378*0Sstevel@tonic-gatefunction should not be used outside the package that defined it. 2379*0Sstevel@tonic-gate 2380*0Sstevel@tonic-gate=item * 2381*0Sstevel@tonic-gate 2382*0Sstevel@tonic-gateSelect what to export. 2383*0Sstevel@tonic-gate 2384*0Sstevel@tonic-gateDo NOT export method names! 2385*0Sstevel@tonic-gate 2386*0Sstevel@tonic-gateDo NOT export anything else by default without a good reason! 2387*0Sstevel@tonic-gate 2388*0Sstevel@tonic-gateExports pollute the namespace of the module user. If you must 2389*0Sstevel@tonic-gateexport try to use @EXPORT_OK in preference to @EXPORT and avoid 2390*0Sstevel@tonic-gateshort or common names to reduce the risk of name clashes. 2391*0Sstevel@tonic-gate 2392*0Sstevel@tonic-gateGenerally anything not exported is still accessible from outside the 2393*0Sstevel@tonic-gatemodule using the ModuleName::item_name (or C<< $blessed_ref->method >>) 2394*0Sstevel@tonic-gatesyntax. By convention you can use a leading underscore on names to 2395*0Sstevel@tonic-gateindicate informally that they are 'internal' and not for public use. 2396*0Sstevel@tonic-gate 2397*0Sstevel@tonic-gate(It is actually possible to get private functions by saying: 2398*0Sstevel@tonic-gateC<my $subref = sub { ... }; &$subref;>. But there's no way to call that 2399*0Sstevel@tonic-gatedirectly as a method, because a method must have a name in the symbol 2400*0Sstevel@tonic-gatetable.) 2401*0Sstevel@tonic-gate 2402*0Sstevel@tonic-gateAs a general rule, if the module is trying to be object oriented 2403*0Sstevel@tonic-gatethen export nothing. If it's just a collection of functions then 2404*0Sstevel@tonic-gate@EXPORT_OK anything but use @EXPORT with caution. 2405*0Sstevel@tonic-gate 2406*0Sstevel@tonic-gate=item * 2407*0Sstevel@tonic-gate 2408*0Sstevel@tonic-gateSelect a name for the module. 2409*0Sstevel@tonic-gate 2410*0Sstevel@tonic-gateThis name should be as descriptive, accurate, and complete as 2411*0Sstevel@tonic-gatepossible. Avoid any risk of ambiguity. Always try to use two or 2412*0Sstevel@tonic-gatemore whole words. Generally the name should reflect what is special 2413*0Sstevel@tonic-gateabout what the module does rather than how it does it. Please use 2414*0Sstevel@tonic-gatenested module names to group informally or categorize a module. 2415*0Sstevel@tonic-gateThere should be a very good reason for a module not to have a nested name. 2416*0Sstevel@tonic-gateModule names should begin with a capital letter. 2417*0Sstevel@tonic-gate 2418*0Sstevel@tonic-gateHaving 57 modules all called Sort will not make life easy for anyone 2419*0Sstevel@tonic-gate(though having 23 called Sort::Quick is only marginally better :-). 2420*0Sstevel@tonic-gateImagine someone trying to install your module alongside many others. 2421*0Sstevel@tonic-gateIf in any doubt ask for suggestions in comp.lang.perl.misc. 2422*0Sstevel@tonic-gate 2423*0Sstevel@tonic-gateIf you are developing a suite of related modules/classes it's good 2424*0Sstevel@tonic-gatepractice to use nested classes with a common prefix as this will 2425*0Sstevel@tonic-gateavoid namespace clashes. For example: Xyz::Control, Xyz::View, 2426*0Sstevel@tonic-gateXyz::Model etc. Use the modules in this list as a naming guide. 2427*0Sstevel@tonic-gate 2428*0Sstevel@tonic-gateIf adding a new module to a set, follow the original author's 2429*0Sstevel@tonic-gatestandards for naming modules and the interface to methods in 2430*0Sstevel@tonic-gatethose modules. 2431*0Sstevel@tonic-gate 2432*0Sstevel@tonic-gateIf developing modules for private internal or project specific use, 2433*0Sstevel@tonic-gatethat will never be released to the public, then you should ensure 2434*0Sstevel@tonic-gatethat their names will not clash with any future public module. You 2435*0Sstevel@tonic-gatecan do this either by using the reserved Local::* category or by 2436*0Sstevel@tonic-gateusing a category name that includes an underscore like Foo_Corp::*. 2437*0Sstevel@tonic-gate 2438*0Sstevel@tonic-gateTo be portable each component of a module name should be limited to 2439*0Sstevel@tonic-gate11 characters. If it might be used on MS-DOS then try to ensure each is 2440*0Sstevel@tonic-gateunique in the first 8 characters. Nested modules make this easier. 2441*0Sstevel@tonic-gate 2442*0Sstevel@tonic-gate=item * 2443*0Sstevel@tonic-gate 2444*0Sstevel@tonic-gateHave you got it right? 2445*0Sstevel@tonic-gate 2446*0Sstevel@tonic-gateHow do you know that you've made the right decisions? Have you 2447*0Sstevel@tonic-gatepicked an interface design that will cause problems later? Have 2448*0Sstevel@tonic-gateyou picked the most appropriate name? Do you have any questions? 2449*0Sstevel@tonic-gate 2450*0Sstevel@tonic-gateThe best way to know for sure, and pick up many helpful suggestions, 2451*0Sstevel@tonic-gateis to ask someone who knows. Comp.lang.perl.misc is read by just about 2452*0Sstevel@tonic-gateall the people who develop modules and it's the best place to ask. 2453*0Sstevel@tonic-gate 2454*0Sstevel@tonic-gateAll you need to do is post a short summary of the module, its 2455*0Sstevel@tonic-gatepurpose and interfaces. A few lines on each of the main methods is 2456*0Sstevel@tonic-gateprobably enough. (If you post the whole module it might be ignored 2457*0Sstevel@tonic-gateby busy people - generally the very people you want to read it!) 2458*0Sstevel@tonic-gate 2459*0Sstevel@tonic-gateDon't worry about posting if you can't say when the module will be 2460*0Sstevel@tonic-gateready - just say so in the message. It might be worth inviting 2461*0Sstevel@tonic-gateothers to help you, they may be able to complete it for you! 2462*0Sstevel@tonic-gate 2463*0Sstevel@tonic-gate=item * 2464*0Sstevel@tonic-gate 2465*0Sstevel@tonic-gateREADME and other Additional Files. 2466*0Sstevel@tonic-gate 2467*0Sstevel@tonic-gateIt's well known that software developers usually fully document the 2468*0Sstevel@tonic-gatesoftware they write. If, however, the world is in urgent need of 2469*0Sstevel@tonic-gateyour software and there is not enough time to write the full 2470*0Sstevel@tonic-gatedocumentation please at least provide a README file containing: 2471*0Sstevel@tonic-gate 2472*0Sstevel@tonic-gate=over 10 2473*0Sstevel@tonic-gate 2474*0Sstevel@tonic-gate=item * 2475*0Sstevel@tonic-gate 2476*0Sstevel@tonic-gateA description of the module/package/extension etc. 2477*0Sstevel@tonic-gate 2478*0Sstevel@tonic-gate=item * 2479*0Sstevel@tonic-gate 2480*0Sstevel@tonic-gateA copyright notice - see below. 2481*0Sstevel@tonic-gate 2482*0Sstevel@tonic-gate=item * 2483*0Sstevel@tonic-gate 2484*0Sstevel@tonic-gatePrerequisites - what else you may need to have. 2485*0Sstevel@tonic-gate 2486*0Sstevel@tonic-gate=item * 2487*0Sstevel@tonic-gate 2488*0Sstevel@tonic-gateHow to build it - possible changes to Makefile.PL etc. 2489*0Sstevel@tonic-gate 2490*0Sstevel@tonic-gate=item * 2491*0Sstevel@tonic-gate 2492*0Sstevel@tonic-gateHow to install it. 2493*0Sstevel@tonic-gate 2494*0Sstevel@tonic-gate=item * 2495*0Sstevel@tonic-gate 2496*0Sstevel@tonic-gateRecent changes in this release, especially incompatibilities 2497*0Sstevel@tonic-gate 2498*0Sstevel@tonic-gate=item * 2499*0Sstevel@tonic-gate 2500*0Sstevel@tonic-gateChanges / enhancements you plan to make in the future. 2501*0Sstevel@tonic-gate 2502*0Sstevel@tonic-gate=back 2503*0Sstevel@tonic-gate 2504*0Sstevel@tonic-gateIf the README file seems to be getting too large you may wish to 2505*0Sstevel@tonic-gatesplit out some of the sections into separate files: INSTALL, 2506*0Sstevel@tonic-gateCopying, ToDo etc. 2507*0Sstevel@tonic-gate 2508*0Sstevel@tonic-gate=over 4 2509*0Sstevel@tonic-gate 2510*0Sstevel@tonic-gate=item * 2511*0Sstevel@tonic-gate 2512*0Sstevel@tonic-gateAdding a Copyright Notice. 2513*0Sstevel@tonic-gate 2514*0Sstevel@tonic-gateHow you choose to license your work is a personal decision. 2515*0Sstevel@tonic-gateThe general mechanism is to assert your Copyright and then make 2516*0Sstevel@tonic-gatea declaration of how others may copy/use/modify your work. 2517*0Sstevel@tonic-gate 2518*0Sstevel@tonic-gatePerl, for example, is supplied with two types of licence: The GNU GPL 2519*0Sstevel@tonic-gateand The Artistic Licence (see the files README, Copying, and Artistic, 2520*0Sstevel@tonic-gateor L<perlgpl> and L<perlartistic>). Larry has good reasons for NOT 2521*0Sstevel@tonic-gatejust using the GNU GPL. 2522*0Sstevel@tonic-gate 2523*0Sstevel@tonic-gateMy personal recommendation, out of respect for Larry, Perl, and the 2524*0Sstevel@tonic-gatePerl community at large is to state something simply like: 2525*0Sstevel@tonic-gate 2526*0Sstevel@tonic-gate Copyright (c) 1995 Your Name. All rights reserved. 2527*0Sstevel@tonic-gate This program is free software; you can redistribute it and/or 2528*0Sstevel@tonic-gate modify it under the same terms as Perl itself. 2529*0Sstevel@tonic-gate 2530*0Sstevel@tonic-gateThis statement should at least appear in the README file. You may 2531*0Sstevel@tonic-gatealso wish to include it in a Copying file and your source files. 2532*0Sstevel@tonic-gateRemember to include the other words in addition to the Copyright. 2533*0Sstevel@tonic-gate 2534*0Sstevel@tonic-gate=item * 2535*0Sstevel@tonic-gate 2536*0Sstevel@tonic-gateGive the module a version/issue/release number. 2537*0Sstevel@tonic-gate 2538*0Sstevel@tonic-gateTo be fully compatible with the Exporter and MakeMaker modules you 2539*0Sstevel@tonic-gateshould store your module's version number in a non-my package 2540*0Sstevel@tonic-gatevariable called $VERSION. This should be a floating point 2541*0Sstevel@tonic-gatenumber with at least two digits after the decimal (i.e., hundredths, 2542*0Sstevel@tonic-gatee.g, C<$VERSION = "0.01">). Don't use a "1.3.2" style version. 2543*0Sstevel@tonic-gateSee L<Exporter> for details. 2544*0Sstevel@tonic-gate 2545*0Sstevel@tonic-gateIt may be handy to add a function or method to retrieve the number. 2546*0Sstevel@tonic-gateUse the number in announcements and archive file names when 2547*0Sstevel@tonic-gatereleasing the module (ModuleName-1.02.tar.Z). 2548*0Sstevel@tonic-gateSee perldoc ExtUtils::MakeMaker.pm for details. 2549*0Sstevel@tonic-gate 2550*0Sstevel@tonic-gate=item * 2551*0Sstevel@tonic-gate 2552*0Sstevel@tonic-gateHow to release and distribute a module. 2553*0Sstevel@tonic-gate 2554*0Sstevel@tonic-gateIt's good idea to post an announcement of the availability of your 2555*0Sstevel@tonic-gatemodule (or the module itself if small) to the comp.lang.perl.announce 2556*0Sstevel@tonic-gateUsenet newsgroup. This will at least ensure very wide once-off 2557*0Sstevel@tonic-gatedistribution. 2558*0Sstevel@tonic-gate 2559*0Sstevel@tonic-gateIf possible, register the module with CPAN. You should 2560*0Sstevel@tonic-gateinclude details of its location in your announcement. 2561*0Sstevel@tonic-gate 2562*0Sstevel@tonic-gateSome notes about ftp archives: Please use a long descriptive file 2563*0Sstevel@tonic-gatename that includes the version number. Most incoming directories 2564*0Sstevel@tonic-gatewill not be readable/listable, i.e., you won't be able to see your 2565*0Sstevel@tonic-gatefile after uploading it. Remember to send your email notification 2566*0Sstevel@tonic-gatemessage as soon as possible after uploading else your file may get 2567*0Sstevel@tonic-gatedeleted automatically. Allow time for the file to be processed 2568*0Sstevel@tonic-gateand/or check the file has been processed before announcing its 2569*0Sstevel@tonic-gatelocation. 2570*0Sstevel@tonic-gate 2571*0Sstevel@tonic-gateFTP Archives for Perl Modules: 2572*0Sstevel@tonic-gate 2573*0Sstevel@tonic-gateFollow the instructions and links on: 2574*0Sstevel@tonic-gate 2575*0Sstevel@tonic-gate http://www.cpan.org/modules/00modlist.long.html 2576*0Sstevel@tonic-gate http://www.cpan.org/modules/04pause.html 2577*0Sstevel@tonic-gate 2578*0Sstevel@tonic-gateor upload to one of these sites: 2579*0Sstevel@tonic-gate 2580*0Sstevel@tonic-gate https://pause.kbx.de/pause/ 2581*0Sstevel@tonic-gate http://pause.perl.org/pause/ 2582*0Sstevel@tonic-gate 2583*0Sstevel@tonic-gateand notify <modules@perl.org>. 2584*0Sstevel@tonic-gate 2585*0Sstevel@tonic-gateBy using the WWW interface you can ask the Upload Server to mirror 2586*0Sstevel@tonic-gateyour modules from your ftp or WWW site into your own directory on 2587*0Sstevel@tonic-gateCPAN! 2588*0Sstevel@tonic-gate 2589*0Sstevel@tonic-gatePlease remember to send me an updated entry for the Module list! 2590*0Sstevel@tonic-gate 2591*0Sstevel@tonic-gate=item * 2592*0Sstevel@tonic-gate 2593*0Sstevel@tonic-gateTake care when changing a released module. 2594*0Sstevel@tonic-gate 2595*0Sstevel@tonic-gateAlways strive to remain compatible with previous released versions. 2596*0Sstevel@tonic-gateOtherwise try to add a mechanism to revert to the 2597*0Sstevel@tonic-gateold behavior if people rely on it. Document incompatible changes. 2598*0Sstevel@tonic-gate 2599*0Sstevel@tonic-gate=back 2600*0Sstevel@tonic-gate 2601*0Sstevel@tonic-gate=back 2602*0Sstevel@tonic-gate 2603*0Sstevel@tonic-gate=head2 Guidelines for Converting Perl 4 Library Scripts into Modules 2604*0Sstevel@tonic-gate 2605*0Sstevel@tonic-gate=over 4 2606*0Sstevel@tonic-gate 2607*0Sstevel@tonic-gate=item * 2608*0Sstevel@tonic-gate 2609*0Sstevel@tonic-gateThere is no requirement to convert anything. 2610*0Sstevel@tonic-gate 2611*0Sstevel@tonic-gateIf it ain't broke, don't fix it! Perl 4 library scripts should 2612*0Sstevel@tonic-gatecontinue to work with no problems. You may need to make some minor 2613*0Sstevel@tonic-gatechanges (like escaping non-array @'s in double quoted strings) but 2614*0Sstevel@tonic-gatethere is no need to convert a .pl file into a Module for just that. 2615*0Sstevel@tonic-gate 2616*0Sstevel@tonic-gate=item * 2617*0Sstevel@tonic-gate 2618*0Sstevel@tonic-gateConsider the implications. 2619*0Sstevel@tonic-gate 2620*0Sstevel@tonic-gateAll Perl applications that make use of the script will need to 2621*0Sstevel@tonic-gatebe changed (slightly) if the script is converted into a module. Is 2622*0Sstevel@tonic-gateit worth it unless you plan to make other changes at the same time? 2623*0Sstevel@tonic-gate 2624*0Sstevel@tonic-gate=item * 2625*0Sstevel@tonic-gate 2626*0Sstevel@tonic-gateMake the most of the opportunity. 2627*0Sstevel@tonic-gate 2628*0Sstevel@tonic-gateIf you are going to convert the script to a module you can use the 2629*0Sstevel@tonic-gateopportunity to redesign the interface. The guidelines for module 2630*0Sstevel@tonic-gatecreation above include many of the issues you should consider. 2631*0Sstevel@tonic-gate 2632*0Sstevel@tonic-gate=item * 2633*0Sstevel@tonic-gate 2634*0Sstevel@tonic-gateThe pl2pm utility will get you started. 2635*0Sstevel@tonic-gate 2636*0Sstevel@tonic-gateThis utility will read *.pl files (given as parameters) and write 2637*0Sstevel@tonic-gatecorresponding *.pm files. The pl2pm utilities does the following: 2638*0Sstevel@tonic-gate 2639*0Sstevel@tonic-gate=over 10 2640*0Sstevel@tonic-gate 2641*0Sstevel@tonic-gate=item * 2642*0Sstevel@tonic-gate 2643*0Sstevel@tonic-gateAdds the standard Module prologue lines 2644*0Sstevel@tonic-gate 2645*0Sstevel@tonic-gate=item * 2646*0Sstevel@tonic-gate 2647*0Sstevel@tonic-gateConverts package specifiers from ' to :: 2648*0Sstevel@tonic-gate 2649*0Sstevel@tonic-gate=item * 2650*0Sstevel@tonic-gate 2651*0Sstevel@tonic-gateConverts die(...) to croak(...) 2652*0Sstevel@tonic-gate 2653*0Sstevel@tonic-gate=item * 2654*0Sstevel@tonic-gate 2655*0Sstevel@tonic-gateSeveral other minor changes 2656*0Sstevel@tonic-gate 2657*0Sstevel@tonic-gate=back 2658*0Sstevel@tonic-gate 2659*0Sstevel@tonic-gateBeing a mechanical process pl2pm is not bullet proof. The converted 2660*0Sstevel@tonic-gatecode will need careful checking, especially any package statements. 2661*0Sstevel@tonic-gateDon't delete the original .pl file till the new .pm one works! 2662*0Sstevel@tonic-gate 2663*0Sstevel@tonic-gate=back 2664*0Sstevel@tonic-gate 2665*0Sstevel@tonic-gate=head2 Guidelines for Reusing Application Code 2666*0Sstevel@tonic-gate 2667*0Sstevel@tonic-gate=over 4 2668*0Sstevel@tonic-gate 2669*0Sstevel@tonic-gate=item * 2670*0Sstevel@tonic-gate 2671*0Sstevel@tonic-gateComplete applications rarely belong in the Perl Module Library. 2672*0Sstevel@tonic-gate 2673*0Sstevel@tonic-gate=item * 2674*0Sstevel@tonic-gate 2675*0Sstevel@tonic-gateMany applications contain some Perl code that could be reused. 2676*0Sstevel@tonic-gate 2677*0Sstevel@tonic-gateHelp save the world! Share your code in a form that makes it easy 2678*0Sstevel@tonic-gateto reuse. 2679*0Sstevel@tonic-gate 2680*0Sstevel@tonic-gate=item * 2681*0Sstevel@tonic-gate 2682*0Sstevel@tonic-gateBreak-out the reusable code into one or more separate module files. 2683*0Sstevel@tonic-gate 2684*0Sstevel@tonic-gate=item * 2685*0Sstevel@tonic-gate 2686*0Sstevel@tonic-gateTake the opportunity to reconsider and redesign the interfaces. 2687*0Sstevel@tonic-gate 2688*0Sstevel@tonic-gate=item * 2689*0Sstevel@tonic-gate 2690*0Sstevel@tonic-gateIn some cases the 'application' can then be reduced to a small 2691*0Sstevel@tonic-gate 2692*0Sstevel@tonic-gatefragment of code built on top of the reusable modules. In these cases 2693*0Sstevel@tonic-gatethe application could invoked as: 2694*0Sstevel@tonic-gate 2695*0Sstevel@tonic-gate % perl -e 'use Module::Name; method(@ARGV)' ... 2696*0Sstevel@tonic-gateor 2697*0Sstevel@tonic-gate % perl -mModule::Name ... (in perl5.002 or higher) 2698*0Sstevel@tonic-gate 2699*0Sstevel@tonic-gate=back 2700*0Sstevel@tonic-gate 2701*0Sstevel@tonic-gate=head1 NOTE 2702*0Sstevel@tonic-gate 2703*0Sstevel@tonic-gatePerl does not enforce private and public parts of its modules as you may 2704*0Sstevel@tonic-gatehave been used to in other languages like C++, Ada, or Modula-17. Perl 2705*0Sstevel@tonic-gatedoesn't have an infatuation with enforced privacy. It would prefer 2706*0Sstevel@tonic-gatethat you stayed out of its living room because you weren't invited, not 2707*0Sstevel@tonic-gatebecause it has a shotgun. 2708*0Sstevel@tonic-gate 2709*0Sstevel@tonic-gateThe module and its user have a contract, part of which is common law, 2710*0Sstevel@tonic-gateand part of which is "written". Part of the common law contract is 2711*0Sstevel@tonic-gatethat a module doesn't pollute any namespace it wasn't asked to. The 2712*0Sstevel@tonic-gatewritten contract for the module (A.K.A. documentation) may make other 2713*0Sstevel@tonic-gateprovisions. But then you know when you C<use RedefineTheWorld> that 2714*0Sstevel@tonic-gateyou're redefining the world and willing to take the consequences. 2715