1PERLMODLIB(1) Perl Programmers Reference Guide PERLMODLIB(1)
2
3
4
6 perlmodlib - constructing new Perl modules and finding existing ones
7
9 Many modules are included in the Perl distribution. These are
10 described below, and all end in .pm. You may discover compiled library
11 files (usually ending in .so) or small pieces of modules to be
12 autoloaded (ending in .al); these were automatically generated by the
13 installation process. You may also discover files in the library
14 directory that end in either .pl or .ph. These are old libraries
15 supplied so that old programs that use them still run. The .pl files
16 will all eventually be converted into standard modules, and the .ph
17 files made by h2ph will probably end up as extension modules made by
18 h2xs. (Some .ph values may already be available through the POSIX,
19 Errno, or Fcntl modules.) The pl2pm file in the distribution may help
20 in your conversion, but it's just a mechanical process and therefore
21 far from bulletproof.
22
23 Pragmatic Modules
24 They work somewhat like compiler directives (pragmata) in that they
25 tend to affect the compilation of your program, and thus will usually
26 work well only when used within a "use", or "no". Most of these are
27 lexically scoped, so an inner BLOCK may countermand them by saying:
28
29 no integer;
30 no strict 'refs';
31 no warnings;
32
33 which lasts until the end of that BLOCK.
34
35 Some pragmas are lexically scoped--typically those that affect the $^H
36 hints variable. Others affect the current package instead, like "use
37 vars" and "use subs", which allow you to predeclare a variables or
38 subroutines within a particular file rather than just a block. Such
39 declarations are effective for the entire file for which they were
40 declared. You cannot rescind them with "no vars" or "no subs".
41
42 The following pragmas are defined (and have their own documentation).
43
44 attributes Get/set subroutine or variable attributes
45
46 attrs Set/get attributes of a subroutine (deprecated)
47
48 autodie Replace functions with ones that succeed or die with
49 lexical scope
50
51 autodie::exception
52 Exceptions from autodying functions.
53
54 autodie::exception::system
55 Exceptions from autodying system().
56
57 autodie::hints
58 Provide hints about user subroutines to autodie
59
60 autouse Postpone load of modules until a function is used
61
62 base Establish an ISA relationship with base classes at compile
63 time
64
65 bigint Transparent BigInteger support for Perl
66
67 bignum Transparent BigNumber support for Perl
68
69 bigrat Transparent BigNumber/BigRational support for Perl
70
71 blib Use MakeMaker's uninstalled version of a package
72
73 bytes Force byte semantics rather than character semantics
74
75 charnames Define character names for "\N{named}" string literal
76 escapes
77
78 constant Declare constants
79
80 diagnostics Produce verbose warning diagnostics
81
82 encoding Allows you to write your script in non-ascii or non-utf8
83
84 encoding::warnings
85 Warn on implicit encoding conversions
86
87 feature Enable new syntactic features
88
89 fields Compile-time class fields
90
91 filetest Control the filetest permission operators
92
93 if "use" a Perl module if a condition holds
94
95 integer Use integer arithmetic instead of floating point
96
97 less Request less of something
98
99 lib Manipulate @INC at compile time
100
101 locale Use and avoid POSIX locales for built-in operations
102
103 mro Method Resolution Order
104
105 open Set default PerlIO layers for input and output
106
107 ops Restrict unsafe operations when compiling
108
109 overload Package for overloading Perl operations
110
111 overloading Lexically control overloading
112
113 parent Establish an ISA relationship with base classes at compile
114 time
115
116 re Alter regular expression behaviour
117
118 sigtrap Enable simple signal handling
119
120 sort Control sort() behaviour
121
122 strict Restrict unsafe constructs
123
124 subs Predeclare sub names
125
126 threads Perl interpreter-based threads
127
128 threads::shared
129 Perl extension for sharing data structures between threads
130
131 utf8 Enable/disable UTF-8 (or UTF-EBCDIC) in source code
132
133 vars Predeclare global variable names (obsolete)
134
135 version Perl extension for Version Objects
136
137 vmsish Control VMS-specific language features
138
139 warnings Control optional warnings
140
141 warnings::register
142 Warnings import function
143
144 Standard Modules
145 Standard, bundled modules are all expected to behave in a well-defined
146 manner with respect to namespace pollution because they use the
147 Exporter module. See their own documentation for details.
148
149 It's possible that not all modules listed below are installed on your
150 system. For example, the GDBM_File module will not be installed if you
151 don't have the gdbm library.
152
153 AnyDBM_File Provide framework for multiple DBMs
154
155 App::Prove Implements the "prove" command.
156
157 App::Prove::State
158 State storage for the "prove" command.
159
160 App::Prove::State::Result
161 Individual test suite results.
162
163 App::Prove::State::Result::Test
164 Individual test results.
165
166 Archive::Extract
167 A generic archive extracting mechanism
168
169 Archive::Tar
170 Module for manipulations of tar archives
171
172 Archive::Tar::File
173 A subclass for in-memory extracted file from Archive::Tar
174
175 Attribute::Handlers
176 Simpler definition of attribute handlers
177
178 AutoLoader Load subroutines only on demand
179
180 AutoSplit Split a package for autoloading
181
182 B The Perl Compiler
183
184 B::Concise Walk Perl syntax tree, printing concise info about ops
185
186 B::Debug Walk Perl syntax tree, printing debug info about ops
187
188 B::Deparse Perl compiler backend to produce perl code
189
190 B::Lint Perl lint
191
192 B::Lint::Debug
193 Adds debugging stringification to B::
194
195 B::Showlex Show lexical variables used in functions or files
196
197 B::Terse Walk Perl syntax tree, printing terse info about ops
198
199 B::Xref Generates cross reference reports for Perl programs
200
201 Benchmark Benchmark running times of Perl code
202
203 CGI Handle Common Gateway Interface requests and responses
204
205 CGI::Apache Backward compatibility module for CGI.pm
206
207 CGI::Carp CGI routines for writing to the HTTPD (or other) error log
208
209 CGI::Cookie Interface to HTTP Cookies
210
211 CGI::Fast CGI Interface for Fast CGI
212
213 CGI::Pretty Module to produce nicely formatted HTML code
214
215 CGI::Push Simple Interface to Server Push
216
217 CGI::Switch Backward compatibility module for defunct CGI::Switch
218
219 CGI::Util Internal utilities used by CGI module
220
221 CORE Pseudo-namespace for Perl's core routines
222
223 CPAN Query, download and build perl modules from CPAN sites
224
225 CPAN::API::HOWTO
226 A recipe book for programming with CPAN.pm
227
228 CPAN::Distroprefs
229 Read and match distroprefs
230
231 CPAN::FirstTime
232 Utility for CPAN::Config file Initialization
233
234 CPAN::Kwalify
235 Interface between CPAN.pm and Kwalify.pm
236
237 CPAN::Nox Wrapper around CPAN.pm without using any XS module
238
239 CPAN::Version
240 Utility functions to compare CPAN versions
241
242 CPANPLUS API & CLI access to the CPAN mirrors
243
244 CPANPLUS::Dist::Base
245 Base class for custom distribution classes
246
247 CPANPLUS::Dist::Build
248 CPANPLUS plugin to install packages that use Build.PL
249
250 CPANPLUS::Dist::Build::Constants
251 Constants for CPANPLUS::Dist::Build
252
253 CPANPLUS::Dist::Sample
254 Sample code to create your own Dist::* plugin
255
256 CPANPLUS::Internals::Source::Memory
257 In memory implementation
258
259 CPANPLUS::Internals::Source::SQLite
260 SQLite implementation
261
262 CPANPLUS::Shell::Classic
263 CPAN.pm emulation for CPANPLUS
264
265 CPANPLUS::Shell::Default::Plugins::HOWTO
266 Documentation on how to write your own plugins
267
268 Carp Warn of errors (from perspective of caller)
269
270 Carp::Heavy Heavy machinery, no user serviceable parts inside
271
272 Class::ISA Report the search path for a class's ISA tree
273
274 Class::Struct
275 Declare struct-like datatypes as Perl classes
276
277 Compress::Raw::Bzip2
278 Low-Level Interface to bzip2 compression library
279
280 Compress::Raw::Bzip2::FAQ
281 Frequently Asked Questions about Compress::Raw::Bzip2
282
283 Compress::Raw::Zlib
284 Low-Level Interface to zlib compression library
285
286 Compress::Raw::Zlib::FAQ
287 Frequently Asked Questions about Compress::Raw::Zlib
288
289 Compress::Zlib
290 Interface to zlib compression library
291
292 Config Access Perl configuration information
293
294 Cwd Get pathname of current working directory
295
296 DB Programmatic interface to the Perl debugging API
297
298 DBM_Filter Filter DBM keys/values
299
300 DBM_Filter::compress
301 Filter for DBM_Filter
302
303 DBM_Filter::encode
304 Filter for DBM_Filter
305
306 DBM_Filter::int32
307 Filter for DBM_Filter
308
309 DBM_Filter::null
310 Filter for DBM_Filter
311
312 DBM_Filter::utf8
313 Filter for DBM_Filter
314
315 DB_File Perl5 access to Berkeley DB version 1.x
316
317 Data::Dumper
318 Stringified perl data structures, suitable for both
319 printing and "eval"
320
321 Devel::DProf
322 A Perl code profiler
323
324 Devel::InnerPackage
325 Find all the inner packages of a package
326
327 Devel::PPPort
328 Perl/Pollution/Portability
329
330 Devel::Peek A data debugging tool for the XS programmer
331
332 Devel::SelfStubber
333 Generate stubs for a SelfLoading module
334
335 Digest Modules that calculate message digests
336
337 Digest::MD5 Perl interface to the MD5 Algorithm
338
339 Digest::SHA Perl extension for SHA-1/224/256/384/512
340
341 Digest::base
342 Digest base class
343
344 Digest::file
345 Calculate digests of files
346
347 DirHandle Supply object methods for directory handles
348
349 Dumpvalue Provides screen dump of Perl data.
350
351 DynaLoader Dynamically load C libraries into Perl code
352
353 Encode Character encodings
354
355 Encode::Alias
356 Alias definitions to encodings
357
358 Encode::Byte
359 Single Byte Encodings
360
361 Encode::CJKConstants
362 Internally used by Encode::??::ISO_2022_*
363
364 Encode::CN China-based Chinese Encodings
365
366 Encode::CN::HZ
367 Internally used by Encode::CN
368
369 Encode::Config
370 Internally used by Encode
371
372 Encode::EBCDIC
373 EBCDIC Encodings
374
375 Encode::Encoder
376 Object Oriented Encoder
377
378 Encode::Encoding
379 Encode Implementation Base Class
380
381 Encode::GSM0338
382 ESTI GSM 03.38 Encoding
383
384 Encode::Guess
385 Guesses encoding from data
386
387 Encode::JP Japanese Encodings
388
389 Encode::JP::H2Z
390 Internally used by Encode::JP::2022_JP*
391
392 Encode::JP::JIS7
393 Internally used by Encode::JP
394
395 Encode::KR Korean Encodings
396
397 Encode::KR::2022_KR
398 Internally used by Encode::KR
399
400 Encode::MIME::Header
401 MIME 'B' and 'Q' header encoding
402
403 Encode::MIME::Name
404 Internally used by Encode
405
406 Encode::PerlIO
407 A detailed document on Encode and PerlIO
408
409 Encode::Supported
410 Encodings supported by Encode
411
412 Encode::Symbol
413 Symbol Encodings
414
415 Encode::TW Taiwan-based Chinese Encodings
416
417 Encode::Unicode
418 Various Unicode Transformation Formats
419
420 Encode::Unicode::UTF7
421 UTF-7 encoding
422
423 English Use nice English (or awk) names for ugly punctuation
424 variables
425
426 Env Perl module that imports environment variables as scalars
427 or arrays
428
429 Errno System errno constants
430
431 Exporter Implements default import method for modules
432
433 Exporter::Heavy
434 Exporter guts
435
436 ExtUtils::CBuilder
437 Compile and link C code for Perl modules
438
439 ExtUtils::CBuilder::Platform::Windows
440 Builder class for Windows platforms
441
442 ExtUtils::Command
443 Utilities to replace common UNIX commands in Makefiles etc.
444
445 ExtUtils::Command::MM
446 Commands for the MM's to use in Makefiles
447
448 ExtUtils::Constant
449 Generate XS code to import C header constants
450
451 ExtUtils::Constant::Base
452 Base class for ExtUtils::Constant objects
453
454 ExtUtils::Constant::Utils
455 Helper functions for ExtUtils::Constant
456
457 ExtUtils::Constant::XS
458 Generate C code for XS modules' constants.
459
460 ExtUtils::Embed
461 Utilities for embedding Perl in C/C++ applications
462
463 ExtUtils::Install
464 Install files from here to there
465
466 ExtUtils::Installed
467 Inventory management of installed modules
468
469 ExtUtils::Liblist
470 Determine libraries to use and how to use them
471
472 ExtUtils::MM
473 OS adjusted ExtUtils::MakeMaker subclass
474
475 ExtUtils::MM_AIX
476 AIX specific subclass of ExtUtils::MM_Unix
477
478 ExtUtils::MM_Any
479 Platform-agnostic MM methods
480
481 ExtUtils::MM_BeOS
482 Methods to override UN*X behaviour in ExtUtils::MakeMaker
483
484 ExtUtils::MM_Cygwin
485 Methods to override UN*X behaviour in ExtUtils::MakeMaker
486
487 ExtUtils::MM_DOS
488 DOS specific subclass of ExtUtils::MM_Unix
489
490 ExtUtils::MM_Darwin
491 Special behaviors for OS X
492
493 ExtUtils::MM_MacOS
494 Once produced Makefiles for MacOS Classic
495
496 ExtUtils::MM_NW5
497 Methods to override UN*X behaviour in ExtUtils::MakeMaker
498
499 ExtUtils::MM_OS2
500 Methods to override UN*X behaviour in ExtUtils::MakeMaker
501
502 ExtUtils::MM_QNX
503 QNX specific subclass of ExtUtils::MM_Unix
504
505 ExtUtils::MM_UWIN
506 U/WIN specific subclass of ExtUtils::MM_Unix
507
508 ExtUtils::MM_Unix
509 Methods used by ExtUtils::MakeMaker
510
511 ExtUtils::MM_VMS
512 Methods to override UN*X behaviour in ExtUtils::MakeMaker
513
514 ExtUtils::MM_VOS
515 VOS specific subclass of ExtUtils::MM_Unix
516
517 ExtUtils::MM_Win32
518 Methods to override UN*X behaviour in ExtUtils::MakeMaker
519
520 ExtUtils::MM_Win95
521 Method to customize MakeMaker for Win9X
522
523 ExtUtils::MY
524 ExtUtils::MakeMaker subclass for customization
525
526 ExtUtils::MakeMaker
527 Create a module Makefile
528
529 ExtUtils::MakeMaker::Config
530 Wrapper around Config.pm
531
532 ExtUtils::MakeMaker::FAQ
533 Frequently Asked Questions About MakeMaker
534
535 ExtUtils::MakeMaker::Tutorial
536 Writing a module with MakeMaker
537
538 ExtUtils::Manifest
539 Utilities to write and check a MANIFEST file
540
541 ExtUtils::Mkbootstrap
542 Make a bootstrap file for use by DynaLoader
543
544 ExtUtils::Mksymlists
545 Write linker options files for dynamic extension
546
547 ExtUtils::Packlist
548 Manage .packlist files
549
550 ExtUtils::ParseXS
551 Converts Perl XS code into C code
552
553 ExtUtils::XSSymSet
554 Keep sets of symbol names palatable to the VMS linker
555
556 ExtUtils::testlib
557 Add blib/* directories to @INC
558
559 Fatal Replace functions with equivalents which succeed or die
560
561 Fcntl Load the C Fcntl.h defines
562
563 File::Basename
564 Parse file paths into directory, filename and suffix.
565
566 File::CheckTree
567 Run many filetest checks on a tree
568
569 File::Compare
570 Compare files or filehandles
571
572 File::Copy Copy files or filehandles
573
574 File::DosGlob
575 DOS like globbing and then some
576
577 File::Fetch A generic file fetching mechanism
578
579 File::Find Traverse a directory tree.
580
581 File::Glob Perl extension for BSD glob routine
582
583 File::GlobMapper
584 Extend File Glob to Allow Input and Output Files
585
586 File::Path Create or remove directory trees
587
588 File::Spec Portably perform operations on file names
589
590 File::Spec::Cygwin
591 Methods for Cygwin file specs
592
593 File::Spec::Epoc
594 Methods for Epoc file specs
595
596 File::Spec::Functions
597 Portably perform operations on file names
598
599 File::Spec::Mac
600 File::Spec for Mac OS (Classic)
601
602 File::Spec::OS2
603 Methods for OS/2 file specs
604
605 File::Spec::Unix
606 File::Spec for Unix, base for other File::Spec modules
607
608 File::Spec::VMS
609 Methods for VMS file specs
610
611 File::Spec::Win32
612 Methods for Win32 file specs
613
614 File::Temp Return name and handle of a temporary file safely
615
616 File::stat By-name interface to Perl's built-in stat() functions
617
618 FileCache Keep more files open than the system permits
619
620 FileHandle Supply object methods for filehandles
621
622 Filter::Simple
623 Simplified source filtering
624
625 Filter::Util::Call
626 Perl Source Filter Utility Module
627
628 FindBin Locate directory of original perl script
629
630 GDBM_File Perl5 access to the gdbm library.
631
632 Getopt::Long
633 Extended processing of command line options
634
635 Getopt::Std Process single-character switches with switch clustering
636
637 Hash::Util A selection of general-utility hash subroutines
638
639 Hash::Util::FieldHash
640 Support for Inside-Out Classes
641
642 I18N::Collate
643 Compare 8-bit scalar data according to the current locale
644
645 I18N::LangTags
646 Functions for dealing with RFC3066-style language tags
647
648 I18N::LangTags::Detect
649 Detect the user's language preferences
650
651 I18N::LangTags::List
652 Tags and names for human languages
653
654 I18N::Langinfo
655 Query locale information
656
657 IO Load various IO modules
658
659 IO::Compress::Base
660 Base Class for IO::Compress modules
661
662 IO::Compress::Bzip2
663 Write bzip2 files/buffers
664
665 IO::Compress::Deflate
666 Write RFC 1950 files/buffers
667
668 IO::Compress::FAQ
669 Frequently Asked Questions about IO::Compress
670
671 IO::Compress::Gzip
672 Write RFC 1952 files/buffers
673
674 IO::Compress::RawDeflate
675 Write RFC 1951 files/buffers
676
677 IO::Compress::Zip
678 Write zip files/buffers
679
680 IO::Dir Supply object methods for directory handles
681
682 IO::File Supply object methods for filehandles
683
684 IO::Handle Supply object methods for I/O handles
685
686 IO::Pipe Supply object methods for pipes
687
688 IO::Poll Object interface to system poll call
689
690 IO::Seekable
691 Supply seek based methods for I/O objects
692
693 IO::Select OO interface to the select system call
694
695 IO::Socket Object interface to socket communications
696
697 IO::Socket::INET
698 Object interface for AF_INET domain sockets
699
700 IO::Socket::UNIX
701 Object interface for AF_UNIX domain sockets
702
703 IO::Uncompress::AnyInflate
704 Uncompress zlib-based (zip, gzip) file/buffer
705
706 IO::Uncompress::AnyUncompress
707 Uncompress gzip, zip, bzip2 or lzop file/buffer
708
709 IO::Uncompress::Base
710 Base Class for IO::Uncompress modules
711
712 IO::Uncompress::Bunzip2
713 Read bzip2 files/buffers
714
715 IO::Uncompress::Gunzip
716 Read RFC 1952 files/buffers
717
718 IO::Uncompress::Inflate
719 Read RFC 1950 files/buffers
720
721 IO::Uncompress::RawInflate
722 Read RFC 1951 files/buffers
723
724 IO::Uncompress::Unzip
725 Read zip files/buffers
726
727 IO::Zlib IO:: style interface to Compress::Zlib
728
729 IPC::Cmd Finding and running system commands made easy
730
731 IPC::Msg SysV Msg IPC object class
732
733 IPC::Open2 Open a process for both reading and writing
734
735 IPC::Open3 Open a process for reading, writing, and error handling
736
737 IPC::Semaphore
738 SysV Semaphore IPC object class
739
740 IPC::SharedMem
741 SysV Shared Memory IPC object class
742
743 IPC::SysV System V IPC constants and system calls
744
745 List::Util A selection of general-utility list subroutines
746
747 List::Util::XS
748 Indicate if List::Util was compiled with a C compiler
749
750 Locale::Constants
751 Constants for Locale codes
752
753 Locale::Country
754 ISO codes for country identification (ISO 3166)
755
756 Locale::Currency
757 ISO three letter codes for currency identification (ISO
758 4217)
759
760 Locale::Language
761 ISO two letter codes for language identification (ISO 639)
762
763 Locale::Maketext
764 Framework for localization
765
766 Locale::Maketext::Simple
767 Simple interface to Locale::Maketext::Lexicon
768
769 Locale::Maketext::TPJ13
770 Article about software localization
771
772 Locale::Script
773 ISO codes for script identification (ISO 15924)
774
775 Log::Message
776 A generic message storing mechanism;
777
778 Log::Message::Config
779 Configuration options for Log::Message
780
781 Log::Message::Handlers
782 Message handlers for Log::Message
783
784 Log::Message::Item
785 Message objects for Log::Message
786
787 MIME::Base64
788 Encoding and decoding of base64 strings
789
790 MIME::QuotedPrint
791 Encoding and decoding of quoted-printable strings
792
793 Math::BigFloat
794 Arbitrary size floating point math package
795
796 Math::BigInt
797 Arbitrary size integer/float math package
798
799 Math::BigInt::Calc
800 Pure Perl module to support Math::BigInt
801
802 Math::BigInt::CalcEmu
803 Emulate low-level math with BigInt code
804
805 Math::BigInt::FastCalc
806 Math::BigInt::Calc with some XS for more speed
807
808 Math::BigRat
809 Arbitrary big rational numbers
810
811 Math::Complex
812 Complex numbers and associated mathematical functions
813
814 Math::Trig Trigonometric functions
815
816 Memoize Make functions faster by trading space for time
817
818 Memoize::AnyDBM_File
819 Glue to provide EXISTS for AnyDBM_File for Storable use
820
821 Memoize::Expire
822 Plug-in module for automatic expiration of memoized values
823
824 Memoize::ExpireFile
825 Test for Memoize expiration semantics
826
827 Memoize::ExpireTest
828 Test for Memoize expiration semantics
829
830 Memoize::NDBM_File
831 Glue to provide EXISTS for NDBM_File for Storable use
832
833 Memoize::SDBM_File
834 Glue to provide EXISTS for SDBM_File for Storable use
835
836 Memoize::Storable
837 Store Memoized data in Storable database
838
839 Module::Build
840 Build and install Perl modules
841
842 Module::Build::API
843 API Reference for Module Authors
844
845 Module::Build::Authoring
846 Authoring Module::Build modules
847
848 Module::Build::Base
849 Default methods for Module::Build
850
851 Module::Build::Compat
852 Compatibility with ExtUtils::MakeMaker
853
854 Module::Build::ConfigData
855 Configuration for Module::Build
856
857 Module::Build::Cookbook
858 Examples of Module::Build Usage
859
860 Module::Build::ModuleInfo
861 Gather package and POD information from a perl module file
862
863 Module::Build::Notes
864 Configuration for $module_name
865
866 Module::Build::PPMMaker
867 Perl Package Manager file creation
868
869 Module::Build::Platform::Amiga
870 Builder class for Amiga platforms
871
872 Module::Build::Platform::Default
873 Stub class for unknown platforms
874
875 Module::Build::Platform::EBCDIC
876 Builder class for EBCDIC platforms
877
878 Module::Build::Platform::MPEiX
879 Builder class for MPEiX platforms
880
881 Module::Build::Platform::MacOS
882 Builder class for MacOS platforms
883
884 Module::Build::Platform::RiscOS
885 Builder class for RiscOS platforms
886
887 Module::Build::Platform::Unix
888 Builder class for Unix platforms
889
890 Module::Build::Platform::VMS
891 Builder class for VMS platforms
892
893 Module::Build::Platform::VOS
894 Builder class for VOS platforms
895
896 Module::Build::Platform::Windows
897 Builder class for Windows platforms
898
899 Module::Build::Platform::aix
900 Builder class for AIX platform
901
902 Module::Build::Platform::cygwin
903 Builder class for Cygwin platform
904
905 Module::Build::Platform::darwin
906 Builder class for Mac OS X platform
907
908 Module::Build::Platform::os2
909 Builder class for OS/2 platform
910
911 Module::Build::YAML
912 Provides just enough YAML support so that Module::Build
913 works even if YAML.pm is not installed
914
915 Module::CoreList
916 What modules shipped with versions of perl
917
918 Module::Load
919 Runtime require of both modules and files
920
921 Module::Load::Conditional
922 Looking up module information / loading at runtime
923
924 Module::Loaded
925 Mark modules as loaded or unloaded
926
927 Module::Pluggable
928 Automatically give your module the ability to have plugins
929
930 Module::Pluggable::Object
931 Automatically give your module the ability to have plugins
932
933 NDBM_File Tied access to ndbm files
934
935 NEXT Provide a pseudo-class NEXT (et al) that allows method
936 redispatch
937
938 Net::Cmd Network Command class (as used by FTP, SMTP etc)
939
940 Net::Config Local configuration data for libnet
941
942 Net::Domain Attempt to evaluate the current host's internet name and
943 domain
944
945 Net::FTP FTP Client class
946
947 Net::NNTP NNTP Client class
948
949 Net::Netrc OO interface to users netrc file
950
951 Net::POP3 Post Office Protocol 3 Client class (RFC1939)
952
953 Net::Ping Check a remote host for reachability
954
955 Net::SMTP Simple Mail Transfer Protocol Client
956
957 Net::Time Time and daytime network client interface
958
959 Net::hostent
960 By-name interface to Perl's built-in gethost*() functions
961
962 Net::libnetFAQ
963 Libnet Frequently Asked Questions
964
965 Net::netent By-name interface to Perl's built-in getnet*() functions
966
967 Net::protoent
968 By-name interface to Perl's built-in getproto*() functions
969
970 Net::servent
971 By-name interface to Perl's built-in getserv*() functions
972
973 O Generic interface to Perl Compiler backends
974
975 ODBM_File Tied access to odbm files
976
977 Opcode Disable named opcodes when compiling perl code
978
979 POSIX Perl interface to IEEE Std 1003.1
980
981 Package::Constants
982 List all constants declared in a package
983
984 Params::Check
985 A generic input parsing/checking mechanism.
986
987 Parse::CPAN::Meta
988 Parse META.yml and other similar CPAN metadata files
989
990 PerlIO On demand loader for PerlIO layers and root of PerlIO::*
991 name space
992
993 PerlIO::encoding
994 Encoding layer
995
996 PerlIO::scalar
997 In-memory IO, scalar IO
998
999 PerlIO::via Helper class for PerlIO layers implemented in perl
1000
1001 PerlIO::via::QuotedPrint
1002 PerlIO layer for quoted-printable strings
1003
1004 Pod::Checker
1005 Check pod documents for syntax errors
1006
1007 Pod::Escapes
1008 For resolving Pod E<...> sequences
1009
1010 Pod::Find Find POD documents in directory trees
1011
1012 Pod::Functions
1013 Group Perl's functions a la perlfunc.pod
1014
1015 Pod::Html Module to convert pod files to HTML
1016
1017 Pod::InputObjects
1018 Objects representing POD input paragraphs, commands, etc.
1019
1020 Pod::LaTeX Convert Pod data to formatted Latex
1021
1022 Pod::Man Convert POD data to formatted *roff input
1023
1024 Pod::ParseLink
1025 Parse an L<> formatting code in POD text
1026
1027 Pod::ParseUtils
1028 Helpers for POD parsing and conversion
1029
1030 Pod::Parser Base class for creating POD filters and translators
1031
1032 Pod::Perldoc::ToChecker
1033 Let Perldoc check Pod for errors
1034
1035 Pod::Perldoc::ToMan
1036 Let Perldoc render Pod as man pages
1037
1038 Pod::Perldoc::ToNroff
1039 Let Perldoc convert Pod to nroff
1040
1041 Pod::Perldoc::ToPod
1042 Let Perldoc render Pod as ... Pod!
1043
1044 Pod::Perldoc::ToRtf
1045 Let Perldoc render Pod as RTF
1046
1047 Pod::Perldoc::ToText
1048 Let Perldoc render Pod as plaintext
1049
1050 Pod::Perldoc::ToTk
1051 Let Perldoc use Tk::Pod to render Pod
1052
1053 Pod::Perldoc::ToXml
1054 Let Perldoc render Pod as XML
1055
1056 Pod::PlainText
1057 Convert POD data to formatted ASCII text
1058
1059 Pod::Plainer
1060 Perl extension for converting Pod to old style Pod.
1061
1062 Pod::Select Extract selected sections of POD from input
1063
1064 Pod::Simple Framework for parsing Pod
1065
1066 Pod::Simple::Checker
1067 Check the Pod syntax of a document
1068
1069 Pod::Simple::Debug
1070 Put Pod::Simple into trace/debug mode
1071
1072 Pod::Simple::DumpAsText
1073 Dump Pod-parsing events as text
1074
1075 Pod::Simple::DumpAsXML
1076 Turn Pod into XML
1077
1078 Pod::Simple::HTML
1079 Convert Pod to HTML
1080
1081 Pod::Simple::HTMLBatch
1082 Convert several Pod files to several HTML files
1083
1084 Pod::Simple::LinkSection
1085 Represent "section" attributes of L codes
1086
1087 Pod::Simple::Methody
1088 Turn Pod::Simple events into method calls
1089
1090 Pod::Simple::PullParser
1091 A pull-parser interface to parsing Pod
1092
1093 Pod::Simple::PullParserEndToken
1094 End-tokens from Pod::Simple::PullParser
1095
1096 Pod::Simple::PullParserStartToken
1097 Start-tokens from Pod::Simple::PullParser
1098
1099 Pod::Simple::PullParserTextToken
1100 Text-tokens from Pod::Simple::PullParser
1101
1102 Pod::Simple::PullParserToken
1103 Tokens from Pod::Simple::PullParser
1104
1105 Pod::Simple::RTF
1106 Format Pod as RTF
1107
1108 Pod::Simple::Search
1109 Find POD documents in directory trees
1110
1111 Pod::Simple::SimpleTree
1112 Parse Pod into a simple parse tree
1113
1114 Pod::Simple::Subclassing
1115 Write a formatter as a Pod::Simple subclass
1116
1117 Pod::Simple::Text
1118 Format Pod as plaintext
1119
1120 Pod::Simple::TextContent
1121 Get the text content of Pod
1122
1123 Pod::Simple::XHTML
1124 Format Pod as validating XHTML
1125
1126 Pod::Simple::XMLOutStream
1127 Turn Pod into XML
1128
1129 Pod::Text Convert POD data to formatted ASCII text
1130
1131 Pod::Text::Color
1132 Convert POD data to formatted color ASCII text
1133
1134 Pod::Text::Termcap
1135 Convert POD data to ASCII text with format escapes
1136
1137 Pod::Usage Print a usage message from embedded pod documentation
1138
1139 SDBM_File Tied access to sdbm files
1140
1141 Safe Compile and execute code in restricted compartments
1142
1143 Scalar::Util
1144 A selection of general-utility scalar subroutines
1145
1146 Search::Dict
1147 Search for key in dictionary file
1148
1149 SelectSaver Save and restore selected file handle
1150
1151 SelfLoader Load functions only on demand
1152
1153 Shell Run shell commands transparently within perl
1154
1155 Socket Load the C socket.h defines and structure manipulators
1156
1157 Storable Persistence for Perl data structures
1158
1159 Switch A switch statement for Perl
1160
1161 Symbol Manipulate Perl symbols and their names
1162
1163 Sys::Hostname
1164 Try every conceivable way to get hostname
1165
1166 Sys::Syslog Perl interface to the UNIX syslog(3) calls
1167
1168 Sys::Syslog::Win32
1169 Win32 support for Sys::Syslog
1170
1171 TAP::Base Base class that provides common functionality to
1172 TAP::Parser
1173
1174 TAP::Formatter::Color
1175 Run Perl test scripts with color
1176
1177 TAP::Formatter::Console
1178 Harness output delegate for default console output
1179
1180 TAP::Formatter::Console
1181 Harness output delegate for default console output
1182
1183 TAP::Formatter::Console::ParallelSession
1184 Harness output delegate for parallel console output
1185
1186 TAP::Formatter::Console::Session
1187 Harness output delegate for default console output
1188
1189 TAP::Formatter::File
1190 Harness output delegate for file output
1191
1192 TAP::Formatter::File::Session
1193 Harness output delegate for file output
1194
1195 TAP::Formatter::Session
1196 Abstract base class for harness output delegate
1197
1198 TAP::Harness
1199 Run test scripts with statistics
1200
1201 TAP::Object Base class that provides common functionality to all
1202 "TAP::*" modules
1203
1204 TAP::Parser Parse TAP output
1205
1206 TAP::Parser::Aggregator
1207 Aggregate TAP::Parser results
1208
1209 TAP::Parser::Grammar
1210 A grammar for the Test Anything Protocol.
1211
1212 TAP::Parser::Iterator
1213 Internal base class for TAP::Parser Iterators
1214
1215 TAP::Parser::Iterator::Array
1216 Internal TAP::Parser array Iterator
1217
1218 TAP::Parser::Iterator::Process
1219 Internal TAP::Parser Iterator
1220
1221 TAP::Parser::Iterator::Stream
1222 Internal TAP::Parser Iterator
1223
1224 TAP::Parser::IteratorFactory
1225 Internal TAP::Parser Iterator
1226
1227 TAP::Parser::Multiplexer
1228 Multiplex multiple TAP::Parsers
1229
1230 TAP::Parser::Result
1231 Base class for TAP::Parser output objects
1232
1233 TAP::Parser::Result::Bailout
1234 Bailout result token.
1235
1236 TAP::Parser::Result::Comment
1237 Comment result token.
1238
1239 TAP::Parser::Result::Plan
1240 Plan result token.
1241
1242 TAP::Parser::Result::Pragma
1243 TAP pragma token.
1244
1245 TAP::Parser::Result::Test
1246 Test result token.
1247
1248 TAP::Parser::Result::Unknown
1249 Unknown result token.
1250
1251 TAP::Parser::Result::Version
1252 TAP syntax version token.
1253
1254 TAP::Parser::Result::YAML
1255 YAML result token.
1256
1257 TAP::Parser::ResultFactory
1258 Factory for creating TAP::Parser output objects
1259
1260 TAP::Parser::Scheduler
1261 Schedule tests during parallel testing
1262
1263 TAP::Parser::Scheduler::Job
1264 A single testing job.
1265
1266 TAP::Parser::Scheduler::Spinner
1267 A no-op job.
1268
1269 TAP::Parser::Source
1270 Stream output from some source
1271
1272 TAP::Parser::Source::Perl
1273 Stream Perl output
1274
1275 TAP::Parser::Utils
1276 Internal TAP::Parser utilities
1277
1278 TAP::Parser::YAMLish::Reader
1279 Read YAMLish data from iterator
1280
1281 TAP::Parser::YAMLish::Writer
1282 Write YAMLish data
1283
1284 Term::ANSIColor
1285 Color screen output using ANSI escape sequences
1286
1287 Term::Cap Perl termcap interface
1288
1289 Term::Complete
1290 Perl word completion module
1291
1292 Term::ReadLine
1293 Perl interface to various "readline" packages.
1294
1295 Term::UI Term::ReadLine UI made easy
1296
1297 Test Provides a simple framework for writing test scripts
1298
1299 Test::Builder
1300 Backend for building test libraries
1301
1302 Test::Builder::Module
1303 Base class for test modules
1304
1305 Test::Builder::Tester
1306 Test testsuites that have been built with
1307
1308 Test::Builder::Tester::Color
1309 Turn on colour in Test::Builder::Tester
1310
1311 Test::Harness
1312 Run Perl standard test scripts with statistics
1313
1314 Test::More Yet another framework for writing test scripts
1315
1316 Test::Simple
1317 Basic utilities for writing tests.
1318
1319 Test::Tutorial
1320 A tutorial about writing really basic tests
1321
1322 Text::Abbrev
1323 Create an abbreviation table from a list
1324
1325 Text::Balanced
1326 Extract delimited text sequences from strings.
1327
1328 Text::ParseWords
1329 Parse text into an array of tokens or array of arrays
1330
1331 Text::Soundex
1332 Implementation of the soundex algorithm.
1333
1334 Text::Tabs Expand and unexpand tabs per the unix expand(1) and
1335 unexpand(1)
1336
1337 Text::Wrap Line wrapping to form simple paragraphs
1338
1339 Thread Manipulate threads in Perl (for old code only)
1340
1341 Thread::Queue
1342 Thread-safe queues
1343
1344 Thread::Semaphore
1345 Thread-safe semaphores
1346
1347 Tie::Array Base class for tied arrays
1348
1349 Tie::File Access the lines of a disk file via a Perl array
1350
1351 Tie::Handle Base class definitions for tied handles
1352
1353 Tie::Hash Base class definitions for tied hashes
1354
1355 Tie::Hash::NamedCapture
1356 Named regexp capture buffers
1357
1358 Tie::Memoize
1359 Add data to hash when needed
1360
1361 Tie::RefHash
1362 Use references as hash keys
1363
1364 Tie::Scalar Base class definitions for tied scalars
1365
1366 Tie::StdHandle
1367 Base class definitions for tied handles
1368
1369 Tie::SubstrHash
1370 Fixed-table-size, fixed-key-length hashing
1371
1372 Time::HiRes High resolution alarm, sleep, gettimeofday, interval timers
1373
1374 Time::Local Efficiently compute time from local and GMT time
1375
1376 Time::Piece Object Oriented time objects
1377
1378 Time::Seconds
1379 A simple API to convert seconds to other date values
1380
1381 Time::gmtime
1382 By-name interface to Perl's built-in gmtime() function
1383
1384 Time::localtime
1385 By-name interface to Perl's built-in localtime() function
1386
1387 Time::tm Internal object used by Time::gmtime and Time::localtime
1388
1389 UNIVERSAL Base class for ALL classes (blessed references)
1390
1391 Unicode::Collate
1392 Unicode Collation Algorithm
1393
1394 Unicode::Normalize
1395 Unicode Normalization Forms
1396
1397 Unicode::UCD
1398 Unicode character database
1399
1400 User::grent By-name interface to Perl's built-in getgr*() functions
1401
1402 User::pwent By-name interface to Perl's built-in getpw*() functions
1403
1404 Win32 Interfaces to some Win32 API Functions
1405
1406 Win32API::File
1407 Low-level access to Win32 system API calls for files/dirs.
1408
1409 Win32CORE Win32 CORE function stubs
1410
1411 XS::APItest Test the perl C API
1412
1413 XS::Typemap Module to test the XS typemaps distributed with perl
1414
1415 XSLoader Dynamically load C libraries into Perl code
1416
1417 version::Internal
1418 Perl extension for Version Objects
1419
1420 To find out all modules installed on your system, including those
1421 without documentation or outside the standard release, just use the
1422 following command (under the default win32 shell, double quotes should
1423 be used instead of single quotes).
1424
1425 % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
1426 'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
1427 no_chdir => 1 }, @INC'
1428
1429 (The -T is here to prevent '.' from being listed in @INC.) They should
1430 all have their own documentation installed and accessible via your
1431 system man(1) command. If you do not have a find program, you can use
1432 the Perl find2perl program instead, which generates Perl code as output
1433 you can run through perl. If you have a man program but it doesn't
1434 find your modules, you'll have to fix your manpath. See perl for
1435 details. If you have no system man command, you might try the perldoc
1436 program.
1437
1438 Note also that the command "perldoc perllocal" gives you a (possibly
1439 incomplete) list of the modules that have been further installed on
1440 your system. (The perllocal.pod file is updated by the standard
1441 MakeMaker install process.)
1442
1443 Extension Modules
1444 Extension modules are written in C (or a mix of Perl and C). They are
1445 usually dynamically loaded into Perl if and when you need them, but may
1446 also be linked in statically. Supported extension modules include
1447 Socket, Fcntl, and POSIX.
1448
1449 Many popular C extension modules do not come bundled (at least, not
1450 completely) due to their sizes, volatility, or simply lack of time for
1451 adequate testing and configuration across the multitude of platforms on
1452 which Perl was beta-tested. You are encouraged to look for them on
1453 CPAN (described below), or using web search engines like Alta Vista or
1454 Google.
1455
1457 CPAN stands for Comprehensive Perl Archive Network; it's a globally
1458 replicated trove of Perl materials, including documentation, style
1459 guides, tricks and traps, alternate ports to non-Unix systems and
1460 occasional binary distributions for these. Search engines for CPAN
1461 can be found at http://www.cpan.org/
1462
1463 Most importantly, CPAN includes around a thousand unbundled modules,
1464 some of which require a C compiler to build. Major categories of
1465 modules are:
1466
1467 · Language Extensions and Documentation Tools
1468
1469 · Development Support
1470
1471 · Operating System Interfaces
1472
1473 · Networking, Device Control (modems) and InterProcess Communication
1474
1475 · Data Types and Data Type Utilities
1476
1477 · Database Interfaces
1478
1479 · User Interfaces
1480
1481 · Interfaces to / Emulations of Other Programming Languages
1482
1483 · File Names, File Systems and File Locking (see also File Handles)
1484
1485 · String Processing, Language Text Processing, Parsing, and Searching
1486
1487 · Option, Argument, Parameter, and Configuration File Processing
1488
1489 · Internationalization and Locale
1490
1491 · Authentication, Security, and Encryption
1492
1493 · World Wide Web, HTML, HTTP, CGI, MIME
1494
1495 · Server and Daemon Utilities
1496
1497 · Archiving and Compression
1498
1499 · Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing
1500
1501 · Mail and Usenet News
1502
1503 · Control Flow Utilities (callbacks and exceptions etc)
1504
1505 · File Handle and Input/Output Stream Utilities
1506
1507 · Miscellaneous Modules
1508
1509 The list of the registered CPAN sites as of this writing follows.
1510 Please note that the sorting order is alphabetical on fields:
1511
1512 Continent
1513 |
1514 |-->Country
1515 |
1516 |-->[state/province]
1517 |
1518 |-->ftp
1519 |
1520 |-->[http]
1521
1522 and thus the North American servers happen to be listed between the
1523 European and the South American sites.
1524
1525 You should try to choose one close to you.
1526
1527 Africa
1528 South Africa
1529 http://ftp.rucus.ru.ac.za/pub/perl/CPAN/
1530 ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/
1531 ftp://ftp.is.co.za/programming/perl/CPAN/
1532 ftp://ftp.saix.net/pub/CPAN/
1533 ftp://ftp.sun.ac.za/CPAN/CPAN/
1534
1535 Asia
1536 China
1537 http://cpan.linuxforum.net/
1538 http://cpan.shellhung.org/
1539 ftp://ftp.shellhung.org/pub/CPAN
1540 ftp://mirrors.hknet.com/CPAN
1541
1542 Indonesia
1543 http://mirrors.tf.itb.ac.id/cpan/
1544 http://cpan.cbn.net.id/
1545 ftp://ftp.cbn.net.id/mirror/CPAN
1546
1547 Israel
1548 ftp://ftp.iglu.org.il/pub/CPAN/
1549 http://cpan.lerner.co.il/
1550 http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1551 ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
1552
1553 Japan
1554 ftp://ftp.u-aizu.ac.jp/pub/CPAN
1555 ftp://ftp.kddlabs.co.jp/CPAN/
1556 ftp://ftp.ayamura.org/pub/CPAN/
1557 ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
1558 http://ftp.cpan.jp/
1559 ftp://ftp.cpan.jp/CPAN/
1560 ftp://ftp.dti.ad.jp/pub/lang/CPAN/
1561 ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
1562
1563 Malaysia
1564 http://cpan.MyBSD.org.my
1565 http://mirror.leafbug.org/pub/CPAN
1566 http://ossig.mncc.com.my/mirror/pub/CPAN
1567
1568 Russian Federation
1569 http://cpan.tomsk.ru
1570 ftp://cpan.tomsk.ru/
1571
1572 Saudi Arabia
1573 ftp://ftp.isu.net.sa/pub/CPAN/
1574
1575 Singapore
1576 http://CPAN.en.com.sg/
1577 ftp://cpan.en.com.sg/
1578 http://mirror.averse.net/pub/CPAN
1579 ftp://mirror.averse.net/pub/CPAN
1580 http://cpan.oss.eznetsols.org
1581 ftp://ftp.oss.eznetsols.org/cpan
1582
1583 South Korea
1584 http://CPAN.bora.net/
1585 ftp://ftp.bora.net/pub/CPAN/
1586 http://mirror.kr.FreeBSD.org/CPAN
1587 ftp://ftp.kr.FreeBSD.org/pub/CPAN
1588
1589 Taiwan
1590 ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
1591 http://cpan.cdpa.nsysu.edu.tw/
1592 ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN
1593 http://ftp.isu.edu.tw/pub/CPAN
1594 ftp://ftp.isu.edu.tw/pub/CPAN
1595 ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
1596 http://ftp.tku.edu.tw/pub/CPAN/
1597 ftp://ftp.tku.edu.tw/pub/CPAN/
1598
1599 Thailand
1600 ftp://ftp.loxinfo.co.th/pub/cpan/
1601 ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
1602
1603 Central America
1604 Costa Rica
1605 http://ftp.ucr.ac.cr/Unix/CPAN/
1606 ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
1607
1608 Europe
1609 Austria
1610 http://cpan.inode.at/
1611 ftp://cpan.inode.at
1612 ftp://ftp.tuwien.ac.at/pub/CPAN/
1613
1614 Belgium
1615 http://ftp.easynet.be/pub/CPAN/
1616 ftp://ftp.easynet.be/pub/CPAN/
1617 http://cpan.skynet.be
1618 ftp://ftp.cpan.skynet.be/pub/CPAN
1619 ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
1620
1621 Bosnia and Herzegovina
1622 http://cpan.blic.net/
1623
1624 Bulgaria
1625 http://cpan.online.bg
1626 ftp://cpan.online.bg/cpan
1627 http://cpan.zadnik.org
1628 ftp://ftp.zadnik.org/mirrors/CPAN/
1629 http://cpan.lirex.net/
1630 ftp://ftp.lirex.net/pub/mirrors/CPAN
1631
1632 Croatia
1633 http://ftp.linux.hr/pub/CPAN/
1634 ftp://ftp.linux.hr/pub/CPAN/
1635
1636 Czech Republic
1637 ftp://ftp.fi.muni.cz/pub/CPAN/
1638 ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
1639
1640 Denmark
1641 http://mirrors.sunsite.dk/cpan/
1642 ftp://sunsite.dk/mirrors/cpan/
1643 http://cpan.cybercity.dk
1644 http://www.cpan.dk/CPAN/
1645 ftp://www.cpan.dk/ftp.cpan.org/CPAN/
1646
1647 Estonia
1648 ftp://ftp.ut.ee/pub/languages/perl/CPAN/
1649
1650 Finland
1651 ftp://ftp.funet.fi/pub/languages/perl/CPAN/
1652 http://mirror.eunet.fi/CPAN
1653
1654 France
1655 http://www.enstimac.fr/Perl/CPAN
1656 http://ftp.u-paris10.fr/perl/CPAN
1657 ftp://ftp.u-paris10.fr/perl/CPAN
1658 http://cpan.mirrors.easynet.fr/
1659 ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
1660 ftp://ftp.club-internet.fr/pub/perl/CPAN/
1661 http://fr.cpan.org/
1662 ftp://ftp.lip6.fr/pub/perl/CPAN/
1663 ftp://ftp.oleane.net/pub/mirrors/CPAN/
1664 ftp://ftp.pasteur.fr/pub/computing/CPAN/
1665 http://mir2.ovh.net/ftp.cpan.org
1666 ftp://mir1.ovh.net/ftp.cpan.org
1667 http://ftp.crihan.fr/mirrors/ftp.cpan.org/
1668 ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/
1669 http://ftp.u-strasbg.fr/CPAN
1670 ftp://ftp.u-strasbg.fr/CPAN
1671 ftp://cpan.cict.fr/pub/CPAN/
1672 ftp://ftp.uvsq.fr/pub/perl/CPAN/
1673
1674 Germany
1675 ftp://ftp.rub.de/pub/CPAN/
1676 ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
1677 ftp://ftp.uni-erlangen.de/pub/source/CPAN/
1678 ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
1679 http://pandemonium.tiscali.de/pub/CPAN/
1680 ftp://pandemonium.tiscali.de/pub/CPAN/
1681 http://ftp.gwdg.de/pub/languages/perl/CPAN/
1682 ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
1683 ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
1684 ftp://ftp.leo.org/pub/CPAN/
1685 http://cpan.noris.de/
1686 ftp://cpan.noris.de/pub/CPAN/
1687 ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
1688 ftp://ftp.gmd.de/mirrors/CPAN/
1689
1690 Greece
1691 ftp://ftp.acn.gr/pub/lang/perl
1692 ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
1693 ftp://ftp.ntua.gr/pub/lang/perl/
1694
1695 Hungary
1696 http://ftp.kfki.hu/packages/perl/CPAN/
1697 ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
1698
1699 Iceland
1700 http://ftp.rhnet.is/pub/CPAN/
1701 ftp://ftp.rhnet.is/pub/CPAN/
1702
1703 Ireland
1704 http://cpan.indigo.ie/
1705 ftp://cpan.indigo.ie/pub/CPAN/
1706 http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
1707 ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
1708 http://sunsite.compapp.dcu.ie/pub/perl/
1709 ftp://sunsite.compapp.dcu.ie/pub/perl/
1710
1711 Italy
1712 http://cpan.nettuno.it/
1713 http://gusp.dyndns.org/CPAN/
1714 ftp://gusp.dyndns.org/pub/CPAN
1715 http://softcity.iol.it/cpan
1716 ftp://softcity.iol.it/pub/cpan
1717 ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
1718 ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
1719 ftp://cis.uniRoma2.it/CPAN/
1720 ftp://ftp.edisontel.it/pub/CPAN_Mirror/
1721 http://cpan.flashnet.it/
1722 ftp://ftp.flashnet.it/pub/CPAN/
1723
1724 Latvia
1725 http://kvin.lv/pub/CPAN/
1726
1727 Lithuania
1728 ftp://ftp.unix.lt/pub/CPAN/
1729
1730 Netherlands
1731 ftp://download.xs4all.nl/pub/mirror/CPAN/
1732 ftp://ftp.nl.uu.net/pub/CPAN/
1733 ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
1734 http://cpan.cybercomm.nl/
1735 ftp://mirror.cybercomm.nl/pub/CPAN
1736 ftp://mirror.vuurwerk.nl/pub/CPAN/
1737 ftp://ftp.cpan.nl/pub/CPAN/
1738 http://ftp.easynet.nl/mirror/CPAN
1739 ftp://ftp.easynet.nl/mirror/CPAN
1740 http://archive.cs.uu.nl/mirror/CPAN/
1741 ftp://ftp.cs.uu.nl/mirror/CPAN/
1742
1743 Norway
1744 ftp://ftp.uninett.no/pub/languages/perl/CPAN
1745 ftp://ftp.uit.no/pub/languages/perl/cpan/
1746
1747 Poland
1748 ftp://ftp.mega.net.pl/CPAN
1749 ftp://ftp.man.torun.pl/pub/doc/CPAN/
1750 ftp://sunsite.icm.edu.pl/pub/CPAN/
1751
1752 Portugal
1753 ftp://ftp.ua.pt/pub/CPAN/
1754 ftp://perl.di.uminho.pt/pub/CPAN/
1755 http://cpan.dei.uc.pt/
1756 ftp://ftp.dei.uc.pt/pub/CPAN
1757 ftp://ftp.nfsi.pt/pub/CPAN
1758 http://ftp.linux.pt/pub/mirrors/CPAN
1759 ftp://ftp.linux.pt/pub/mirrors/CPAN
1760 http://cpan.ip.pt/
1761 ftp://cpan.ip.pt/pub/cpan/
1762 http://cpan.telepac.pt/
1763 ftp://ftp.telepac.pt/pub/cpan/
1764
1765 Romania
1766 ftp://ftp.bio-net.ro/pub/CPAN
1767 ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
1768 ftp://ftp.lug.ro/CPAN
1769 ftp://ftp.roedu.net/pub/CPAN/
1770 ftp://ftp.dntis.ro/pub/cpan/
1771 ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
1772 http://cpan.ambra.ro/
1773 ftp://ftp.ambra.ro/pub/CPAN
1774 ftp://ftp.dnttm.ro/pub/CPAN/
1775 ftp://ftp.lasting.ro/pub/CPAN
1776 ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
1777
1778 Russia
1779 ftp://ftp.chg.ru/pub/lang/perl/CPAN/
1780 http://cpan.rinet.ru/
1781 ftp://cpan.rinet.ru/pub/mirror/CPAN/
1782 ftp://ftp.aha.ru/pub/CPAN/
1783 ftp://ftp.corbina.ru/pub/CPAN/
1784 http://cpan.sai.msu.ru/
1785 ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
1786
1787 Slovakia
1788 ftp://ftp.cvt.stuba.sk/pub/CPAN/
1789
1790 Slovenia
1791 ftp://ftp.arnes.si/software/perl/CPAN/
1792
1793 Spain
1794 http://cpan.imasd.elmundo.es/
1795 ftp://ftp.rediris.es/mirror/CPAN/
1796 ftp://ftp.ri.telefonica-data.net/CPAN
1797 ftp://ftp.etse.urv.es/pub/perl/
1798
1799 Sweden
1800 http://ftp.du.se/CPAN/
1801 ftp://ftp.du.se/pub/CPAN/
1802 http://mirror.dataphone.se/CPAN
1803 ftp://mirror.dataphone.se/pub/CPAN
1804 ftp://ftp.sunet.se/pub/lang/perl/CPAN/
1805
1806 Switzerland
1807 http://cpan.mirror.solnet.ch/
1808 ftp://ftp.solnet.ch/mirror/CPAN/
1809 ftp://ftp.danyk.ch/CPAN/
1810 ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
1811
1812 Turkey
1813 http://ftp.ulak.net.tr/perl/CPAN/
1814 ftp://ftp.ulak.net.tr/perl/CPAN
1815 ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
1816
1817 Ukraine
1818 http://cpan.org.ua/
1819 ftp://cpan.org.ua/
1820 ftp://ftp.perl.org.ua/pub/CPAN/
1821 http://no-more.kiev.ua/CPAN/
1822 ftp://no-more.kiev.ua/pub/CPAN/
1823
1824 United Kingdom
1825 http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
1826 ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
1827 http://cpan.teleglobe.net/
1828 ftp://cpan.teleglobe.net/pub/CPAN
1829 http://cpan.mirror.anlx.net/
1830 ftp://ftp.mirror.anlx.net/CPAN/
1831 http://cpan.etla.org/
1832 ftp://cpan.etla.org/pub/CPAN
1833 ftp://ftp.demon.co.uk/pub/CPAN/
1834 http://cpan.m.flirble.org/
1835 ftp://ftp.flirble.org/pub/languages/perl/CPAN/
1836 ftp://ftp.plig.org/pub/CPAN/
1837 http://cpan.hambule.co.uk/
1838 http://cpan.mirrors.clockerz.net/
1839 ftp://ftp.clockerz.net/pub/CPAN/
1840 ftp://usit.shef.ac.uk/pub/packages/CPAN/
1841
1842 North America
1843 Canada
1844 Alberta
1845 http://cpan.sunsite.ualberta.ca/
1846 ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
1847
1848 Manitoba
1849 http://theoryx5.uwinnipeg.ca/pub/CPAN/
1850 ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
1851
1852 Nova Scotia
1853 ftp://cpan.chebucto.ns.ca/pub/CPAN/
1854
1855 Ontario
1856 ftp://ftp.nrc.ca/pub/CPAN/
1857
1858 Mexico
1859 http://cpan.azc.uam.mx
1860 ftp://cpan.azc.uam.mx/mirrors/CPAN
1861 http://www.cpan.unam.mx/
1862 ftp://ftp.unam.mx/pub/CPAN
1863 http://www.msg.com.mx/CPAN/
1864 ftp://ftp.msg.com.mx/pub/CPAN/
1865
1866 United States
1867 Alabama
1868 http://mirror.hiwaay.net/CPAN/
1869 ftp://mirror.hiwaay.net/CPAN/
1870
1871 California
1872 http://cpan.develooper.com/
1873 http://www.cpan.org/
1874 ftp://cpan.valueclick.com/pub/CPAN/
1875 http://www.mednor.net/ftp/pub/mirrors/CPAN/
1876 ftp://ftp.mednor.net/pub/mirrors/CPAN/
1877 http://mirrors.gossamer-threads.com/CPAN
1878 ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
1879 http://mirrors.kernel.org/cpan/
1880 ftp://mirrors.kernel.org/pub/CPAN
1881 http://cpan-sj.viaverio.com/
1882 ftp://cpan-sj.viaverio.com/pub/CPAN/
1883 http://cpan.digisle.net/
1884 ftp://cpan.digisle.net/pub/CPAN
1885 http://www.perl.com/CPAN/
1886 http://www.uberlan.net/CPAN
1887
1888 Colorado
1889 ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
1890 http://cpan.four10.com
1891
1892 Delaware
1893 http://ftp.lug.udel.edu/pub/CPAN
1894 ftp://ftp.lug.udel.edu/pub/CPAN
1895
1896 District of Columbia
1897 ftp://ftp.dc.aleron.net/pub/CPAN/
1898
1899 Florida
1900 ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
1901 http://mirror.csit.fsu.edu/pub/CPAN/
1902 ftp://mirror.csit.fsu.edu/pub/CPAN/
1903 http://cpan.mirrors.nks.net/
1904
1905 Indiana
1906 ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
1907 http://cpan.netnitco.net/
1908 ftp://cpan.netnitco.net/pub/mirrors/CPAN/
1909 http://archive.progeny.com/CPAN/
1910 ftp://archive.progeny.com/CPAN/
1911 http://fx.saintjoe.edu/pub/CPAN
1912 ftp://ftp.saintjoe.edu/pub/CPAN
1913 http://csociety-ftp.ecn.purdue.edu/pub/CPAN
1914 ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
1915
1916 Kentucky
1917 http://cpan.uky.edu/
1918 ftp://cpan.uky.edu/pub/CPAN/
1919 http://slugsite.louisville.edu/cpan
1920 ftp://slugsite.louisville.edu/CPAN
1921
1922 Massachusetts
1923 http://mirrors.towardex.com/CPAN
1924 ftp://mirrors.towardex.com/pub/CPAN
1925 ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
1926
1927 Michigan
1928 ftp://cpan.cse.msu.edu/
1929 http://cpan.calvin.edu/pub/CPAN
1930 ftp://cpan.calvin.edu/pub/CPAN
1931
1932 Nevada
1933 http://www.oss.redundant.com/pub/CPAN
1934 ftp://www.oss.redundant.com/pub/CPAN
1935
1936 New Jersey
1937 http://ftp.cpanel.net/pub/CPAN/
1938 ftp://ftp.cpanel.net/pub/CPAN/
1939 http://cpan.teleglobe.net/
1940 ftp://cpan.teleglobe.net/pub/CPAN
1941
1942 New York
1943 http://cpan.belfry.net/
1944 http://cpan.erlbaum.net/
1945 ftp://cpan.erlbaum.net/
1946 http://cpan.thepirtgroup.com/
1947 ftp://cpan.thepirtgroup.com/
1948 ftp://ftp.stealth.net/pub/CPAN/
1949 http://www.rge.com/pub/languages/perl/
1950 ftp://ftp.rge.com/pub/languages/perl/
1951
1952 North Carolina
1953 http://www.ibiblio.org/pub/languages/perl/CPAN
1954 ftp://ftp.ibiblio.org/pub/languages/perl/CPAN
1955 ftp://ftp.duke.edu/pub/perl/
1956 ftp://ftp.ncsu.edu/pub/mirror/CPAN/
1957
1958 Oklahoma
1959 ftp://ftp.ou.edu/mirrors/CPAN/
1960
1961 Oregon
1962 ftp://ftp.orst.edu/pub/CPAN
1963
1964 Pennsylvania
1965 http://ftp.epix.net/CPAN/
1966 ftp://ftp.epix.net/pub/languages/perl/
1967 http://mirrors.phenominet.com/pub/CPAN/
1968 ftp://mirrors.phenominet.com/pub/CPAN/
1969 http://cpan.pair.com/
1970 ftp://cpan.pair.com/pub/CPAN/
1971 ftp://carroll.cac.psu.edu/pub/CPAN/
1972
1973 Tennessee
1974 ftp://ftp.sunsite.utk.edu/pub/CPAN/
1975
1976 Texas
1977 http://ftp.sedl.org/pub/mirrors/CPAN/
1978 http://www.binarycode.org/cpan
1979 ftp://mirror.telentente.com/pub/CPAN
1980 http://mirrors.theonlinerecordstore.com/CPAN
1981
1982 Utah
1983 ftp://mirror.xmission.com/CPAN/
1984
1985 Virginia
1986 http://cpan-du.viaverio.com/
1987 ftp://cpan-du.viaverio.com/pub/CPAN/
1988 http://mirrors.rcn.net/pub/lang/CPAN/
1989 ftp://mirrors.rcn.net/pub/lang/CPAN/
1990 http://perl.secsup.org/
1991 ftp://perl.secsup.org/pub/perl/
1992 http://noc.cvaix.com/mirrors/CPAN/
1993
1994 Washington
1995 http://cpan.llarian.net/
1996 ftp://cpan.llarian.net/pub/CPAN/
1997 http://cpan.mirrorcentral.com/
1998 ftp://ftp.mirrorcentral.com/pub/CPAN/
1999 ftp://ftp-mirror.internap.com/pub/CPAN/
2000
2001 Wisconsin
2002 http://mirror.sit.wisc.edu/pub/CPAN/
2003 ftp://mirror.sit.wisc.edu/pub/CPAN/
2004 http://mirror.aphix.com/CPAN
2005 ftp://mirror.aphix.com/pub/CPAN
2006
2007 Oceania
2008 Australia
2009 http://ftp.planetmirror.com/pub/CPAN/
2010 ftp://ftp.planetmirror.com/pub/CPAN/
2011 ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
2012 ftp://cpan.topend.com.au/pub/CPAN/
2013 http://cpan.mirrors.ilisys.com.au
2014
2015 New Zealand
2016 ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
2017
2018 United States
2019 http://aniani.ifa.hawaii.edu/CPAN/
2020 ftp://aniani.ifa.hawaii.edu/CPAN/
2021
2022 South America
2023 Argentina
2024 ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
2025 http://www.linux.org.ar/mirrors/cpan
2026 ftp://ftp.linux.org.ar/mirrors/cpan
2027
2028 Brazil
2029 ftp://cpan.pop-mg.com.br/pub/CPAN/
2030 ftp://ftp.matrix.com.br/pub/perl/CPAN/
2031 http://cpan.hostsul.com.br/
2032 ftp://cpan.hostsul.com.br/
2033
2034 Chile
2035 http://cpan.netglobalis.net/
2036 ftp://cpan.netglobalis.net/pub/CPAN/
2037
2038 RSYNC Mirrors
2039 www.linux.org.ar::cpan
2040 theoryx5.uwinnipeg.ca::CPAN
2041 ftp.shellhung.org::CPAN
2042 rsync.nic.funet.fi::CPAN
2043 ftp.u-paris10.fr::CPAN
2044 mir1.ovh.net::CPAN
2045 rsync://ftp.crihan.fr::CPAN
2046 ftp.gwdg.de::FTP/languages/perl/CPAN/
2047 ftp.leo.org::CPAN
2048 ftp.cbn.net.id::CPAN
2049 rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
2050 ftp.iglu.org.il::CPAN
2051 gusp.dyndns.org::cpan
2052 ftp.kddlabs.co.jp::cpan
2053 ftp.ayamura.org::pub/CPAN/
2054 mirror.leafbug.org::CPAN
2055 rsync.en.com.sg::CPAN
2056 mirror.averse.net::cpan
2057 rsync.oss.eznetsols.org
2058 ftp.kr.FreeBSD.org::CPAN
2059 ftp.solnet.ch::CPAN
2060 cpan.cdpa.nsysu.edu.tw::CPAN
2061 cpan.teleglobe.net::CPAN
2062 rsync://rsync.mirror.anlx.net::CPAN
2063 ftp.sedl.org::cpan
2064 ibiblio.org::CPAN
2065 cpan-du.viaverio.com::CPAN
2066 aniani.ifa.hawaii.edu::CPAN
2067 archive.progeny.com::CPAN
2068 rsync://slugsite.louisville.edu::CPAN
2069 mirror.aphix.com::CPAN
2070 cpan.teleglobe.net::CPAN
2071 ftp.lug.udel.edu::cpan
2072 mirrors.kernel.org::mirrors/CPAN
2073 mirrors.phenominet.com::CPAN
2074 cpan.pair.com::CPAN
2075 cpan-sj.viaverio.com::CPAN
2076 mirror.csit.fsu.edu::CPAN
2077 csociety-ftp.ecn.purdue.edu::CPAN
2078
2079 For an up-to-date listing of CPAN sites, see http://www.cpan.org/SITES
2080 or ftp://www.cpan.org/SITES .
2081
2083 (The following section is borrowed directly from Tim Bunce's modules
2084 file, available at your nearest CPAN site.)
2085
2086 Perl implements a class using a package, but the presence of a package
2087 doesn't imply the presence of a class. A package is just a namespace.
2088 A class is a package that provides subroutines that can be used as
2089 methods. A method is just a subroutine that expects, as its first
2090 argument, either the name of a package (for "static" methods), or a
2091 reference to something (for "virtual" methods).
2092
2093 A module is a file that (by convention) provides a class of the same
2094 name (sans the .pm), plus an import method in that class that can be
2095 called to fetch exported symbols. This module may implement some of
2096 its methods by loading dynamic C or C++ objects, but that should be
2097 totally transparent to the user of the module. Likewise, the module
2098 might set up an AUTOLOAD function to slurp in subroutine definitions on
2099 demand, but this is also transparent. Only the .pm file is required to
2100 exist. See perlsub, perltoot, and AutoLoader for details about the
2101 AUTOLOAD mechanism.
2102
2103 Guidelines for Module Creation
2104 · Do similar modules already exist in some form?
2105
2106 If so, please try to reuse the existing modules either in whole or
2107 by inheriting useful features into a new class. If this is not
2108 practical try to get together with the module authors to work on
2109 extending or enhancing the functionality of the existing modules.
2110 A perfect example is the plethora of packages in perl4 for dealing
2111 with command line options.
2112
2113 If you are writing a module to expand an already existing set of
2114 modules, please coordinate with the author of the package. It
2115 helps if you follow the same naming scheme and module interaction
2116 scheme as the original author.
2117
2118 · Try to design the new module to be easy to extend and reuse.
2119
2120 Try to "use warnings;" (or "use warnings qw(...);"). Remember that
2121 you can add "no warnings qw(...);" to individual blocks of code
2122 that need less warnings.
2123
2124 Use blessed references. Use the two argument form of bless to
2125 bless into the class name given as the first parameter of the
2126 constructor, e.g.,:
2127
2128 sub new {
2129 my $class = shift;
2130 return bless {}, $class;
2131 }
2132
2133 or even this if you'd like it to be used as either a static or a
2134 virtual method.
2135
2136 sub new {
2137 my $self = shift;
2138 my $class = ref($self) || $self;
2139 return bless {}, $class;
2140 }
2141
2142 Pass arrays as references so more parameters can be added later
2143 (it's also faster). Convert functions into methods where
2144 appropriate. Split large methods into smaller more flexible ones.
2145 Inherit methods from other modules if appropriate.
2146
2147 Avoid class name tests like: "die "Invalid" unless ref $ref eq
2148 'FOO'". Generally you can delete the "eq 'FOO'" part with no harm
2149 at all. Let the objects look after themselves! Generally, avoid
2150 hard-wired class names as far as possible.
2151
2152 Avoid "$r->Class::func()" where using "@ISA=qw(... Class ...)" and
2153 "$r->func()" would work (see perlbot for more details).
2154
2155 Use autosplit so little used or newly added functions won't be a
2156 burden to programs that don't use them. Add test functions to the
2157 module after __END__ either using AutoSplit or by saying:
2158
2159 eval join('',<main::DATA>) || die $@ unless caller();
2160
2161 Does your module pass the 'empty subclass' test? If you say
2162 "@SUBCLASS::ISA = qw(YOURCLASS);" your applications should be able
2163 to use SUBCLASS in exactly the same way as YOURCLASS. For example,
2164 does your application still work if you change: "$obj =
2165 YOURCLASS->new();" into: "$obj = SUBCLASS->new();" ?
2166
2167 Avoid keeping any state information in your packages. It makes it
2168 difficult for multiple other packages to use yours. Keep state
2169 information in objects.
2170
2171 Always use -w.
2172
2173 Try to "use strict;" (or "use strict qw(...);"). Remember that you
2174 can add "no strict qw(...);" to individual blocks of code that need
2175 less strictness.
2176
2177 Always use -w.
2178
2179 Follow the guidelines in the perlstyle(1) manual.
2180
2181 Always use -w.
2182
2183 · Some simple style guidelines
2184
2185 The perlstyle manual supplied with Perl has many helpful points.
2186
2187 Coding style is a matter of personal taste. Many people evolve
2188 their style over several years as they learn what helps them write
2189 and maintain good code. Here's one set of assorted suggestions
2190 that seem to be widely used by experienced developers:
2191
2192 Use underscores to separate words. It is generally easier to read
2193 $var_names_like_this than $VarNamesLikeThis, especially for non-
2194 native speakers of English. It's also a simple rule that works
2195 consistently with VAR_NAMES_LIKE_THIS.
2196
2197 Package/Module names are an exception to this rule. Perl informally
2198 reserves lowercase module names for 'pragma' modules like integer
2199 and strict. Other modules normally begin with a capital letter and
2200 use mixed case with no underscores (need to be short and portable).
2201
2202 You may find it helpful to use letter case to indicate the scope or
2203 nature of a variable. For example:
2204
2205 $ALL_CAPS_HERE constants only (beware clashes with Perl vars)
2206 $Some_Caps_Here package-wide global/static
2207 $no_caps_here function scope my() or local() variables
2208
2209 Function and method names seem to work best as all lowercase.
2210 e.g., "$obj->as_string()".
2211
2212 You can use a leading underscore to indicate that a variable or
2213 function should not be used outside the package that defined it.
2214
2215 · Select what to export.
2216
2217 Do NOT export method names!
2218
2219 Do NOT export anything else by default without a good reason!
2220
2221 Exports pollute the namespace of the module user. If you must
2222 export try to use @EXPORT_OK in preference to @EXPORT and avoid
2223 short or common names to reduce the risk of name clashes.
2224
2225 Generally anything not exported is still accessible from outside
2226 the module using the ModuleName::item_name (or
2227 "$blessed_ref->method") syntax. By convention you can use a
2228 leading underscore on names to indicate informally that they are
2229 'internal' and not for public use.
2230
2231 (It is actually possible to get private functions by saying: "my
2232 $subref = sub { ... }; &$subref;". But there's no way to call
2233 that directly as a method, because a method must have a name in the
2234 symbol table.)
2235
2236 As a general rule, if the module is trying to be object oriented
2237 then export nothing. If it's just a collection of functions then
2238 @EXPORT_OK anything but use @EXPORT with caution.
2239
2240 · Select a name for the module.
2241
2242 This name should be as descriptive, accurate, and complete as
2243 possible. Avoid any risk of ambiguity. Always try to use two or
2244 more whole words. Generally the name should reflect what is
2245 special about what the module does rather than how it does it.
2246 Please use nested module names to group informally or categorize a
2247 module. There should be a very good reason for a module not to
2248 have a nested name. Module names should begin with a capital
2249 letter.
2250
2251 Having 57 modules all called Sort will not make life easy for
2252 anyone (though having 23 called Sort::Quick is only marginally
2253 better :-). Imagine someone trying to install your module
2254 alongside many others. If in any doubt ask for suggestions in
2255 comp.lang.perl.misc.
2256
2257 If you are developing a suite of related modules/classes it's good
2258 practice to use nested classes with a common prefix as this will
2259 avoid namespace clashes. For example: Xyz::Control, Xyz::View,
2260 Xyz::Model etc. Use the modules in this list as a naming guide.
2261
2262 If adding a new module to a set, follow the original author's
2263 standards for naming modules and the interface to methods in those
2264 modules.
2265
2266 If developing modules for private internal or project specific use,
2267 that will never be released to the public, then you should ensure
2268 that their names will not clash with any future public module. You
2269 can do this either by using the reserved Local::* category or by
2270 using a category name that includes an underscore like Foo_Corp::*.
2271
2272 To be portable each component of a module name should be limited to
2273 11 characters. If it might be used on MS-DOS then try to ensure
2274 each is unique in the first 8 characters. Nested modules make this
2275 easier.
2276
2277 · Have you got it right?
2278
2279 How do you know that you've made the right decisions? Have you
2280 picked an interface design that will cause problems later? Have you
2281 picked the most appropriate name? Do you have any questions?
2282
2283 The best way to know for sure, and pick up many helpful
2284 suggestions, is to ask someone who knows. Comp.lang.perl.misc is
2285 read by just about all the people who develop modules and it's the
2286 best place to ask.
2287
2288 All you need to do is post a short summary of the module, its
2289 purpose and interfaces. A few lines on each of the main methods is
2290 probably enough. (If you post the whole module it might be ignored
2291 by busy people - generally the very people you want to read it!)
2292
2293 Don't worry about posting if you can't say when the module will be
2294 ready - just say so in the message. It might be worth inviting
2295 others to help you, they may be able to complete it for you!
2296
2297 · README and other Additional Files.
2298
2299 It's well known that software developers usually fully document the
2300 software they write. If, however, the world is in urgent need of
2301 your software and there is not enough time to write the full
2302 documentation please at least provide a README file containing:
2303
2304 · A description of the module/package/extension etc.
2305
2306 · A copyright notice - see below.
2307
2308 · Prerequisites - what else you may need to have.
2309
2310 · How to build it - possible changes to Makefile.PL etc.
2311
2312 · How to install it.
2313
2314 · Recent changes in this release, especially
2315 incompatibilities
2316
2317 · Changes / enhancements you plan to make in the future.
2318
2319 If the README file seems to be getting too large you may wish to
2320 split out some of the sections into separate files: INSTALL,
2321 Copying, ToDo etc.
2322
2323 · Adding a Copyright Notice.
2324
2325 How you choose to license your work is a personal decision.
2326 The general mechanism is to assert your Copyright and then make
2327 a declaration of how others may copy/use/modify your work.
2328
2329 Perl, for example, is supplied with two types of licence: The
2330 GNU GPL and The Artistic Licence (see the files README,
2331 Copying, and Artistic, or perlgpl and perlartistic). Larry has
2332 good reasons for NOT just using the GNU GPL.
2333
2334 My personal recommendation, out of respect for Larry, Perl, and
2335 the Perl community at large is to state something simply like:
2336
2337 Copyright (c) 1995 Your Name. All rights reserved.
2338 This program is free software; you can redistribute it and/or
2339 modify it under the same terms as Perl itself.
2340
2341 This statement should at least appear in the README file. You
2342 may also wish to include it in a Copying file and your source
2343 files. Remember to include the other words in addition to the
2344 Copyright.
2345
2346 · Give the module a version/issue/release number.
2347
2348 To be fully compatible with the Exporter and MakeMaker modules
2349 you should store your module's version number in a non-my
2350 package variable called $VERSION. This should be a floating
2351 point number with at least two digits after the decimal (i.e.,
2352 hundredths, e.g, "$VERSION = "0.01""). Don't use a "1.3.2"
2353 style version. See Exporter for details.
2354
2355 It may be handy to add a function or method to retrieve the
2356 number. Use the number in announcements and archive file names
2357 when releasing the module (ModuleName-1.02.tar.Z). See perldoc
2358 ExtUtils::MakeMaker.pm for details.
2359
2360 · How to release and distribute a module.
2361
2362 It's good idea to post an announcement of the availability of
2363 your module (or the module itself if small) to the
2364 comp.lang.perl.announce Usenet newsgroup. This will at least
2365 ensure very wide once-off distribution.
2366
2367 If possible, register the module with CPAN. You should include
2368 details of its location in your announcement.
2369
2370 Some notes about ftp archives: Please use a long descriptive
2371 file name that includes the version number. Most incoming
2372 directories will not be readable/listable, i.e., you won't be
2373 able to see your file after uploading it. Remember to send your
2374 email notification message as soon as possible after uploading
2375 else your file may get deleted automatically. Allow time for
2376 the file to be processed and/or check the file has been
2377 processed before announcing its location.
2378
2379 FTP Archives for Perl Modules:
2380
2381 Follow the instructions and links on:
2382
2383 http://www.cpan.org/modules/00modlist.long.html
2384 http://www.cpan.org/modules/04pause.html
2385
2386 or upload to one of these sites:
2387
2388 https://pause.kbx.de/pause/
2389 http://pause.perl.org/pause/
2390
2391 and notify <modules@perl.org>.
2392
2393 By using the WWW interface you can ask the Upload Server to
2394 mirror your modules from your ftp or WWW site into your own
2395 directory on CPAN!
2396
2397 Please remember to send me an updated entry for the Module
2398 list!
2399
2400 · Take care when changing a released module.
2401
2402 Always strive to remain compatible with previous released
2403 versions. Otherwise try to add a mechanism to revert to the
2404 old behavior if people rely on it. Document incompatible
2405 changes.
2406
2407 Guidelines for Converting Perl 4 Library Scripts into Modules
2408 · There is no requirement to convert anything.
2409
2410 If it ain't broke, don't fix it! Perl 4 library scripts should
2411 continue to work with no problems. You may need to make some minor
2412 changes (like escaping non-array @'s in double quoted strings) but
2413 there is no need to convert a .pl file into a Module for just that.
2414
2415 · Consider the implications.
2416
2417 All Perl applications that make use of the script will need to be
2418 changed (slightly) if the script is converted into a module. Is it
2419 worth it unless you plan to make other changes at the same time?
2420
2421 · Make the most of the opportunity.
2422
2423 If you are going to convert the script to a module you can use the
2424 opportunity to redesign the interface. The guidelines for module
2425 creation above include many of the issues you should consider.
2426
2427 · The pl2pm utility will get you started.
2428
2429 This utility will read *.pl files (given as parameters) and write
2430 corresponding *.pm files. The pl2pm utilities does the following:
2431
2432 · Adds the standard Module prologue lines
2433
2434 · Converts package specifiers from ' to ::
2435
2436 · Converts die(...) to croak(...)
2437
2438 · Several other minor changes
2439
2440 Being a mechanical process pl2pm is not bullet proof. The converted
2441 code will need careful checking, especially any package statements.
2442 Don't delete the original .pl file till the new .pm one works!
2443
2444 Guidelines for Reusing Application Code
2445 · Complete applications rarely belong in the Perl Module Library.
2446
2447 · Many applications contain some Perl code that could be reused.
2448
2449 Help save the world! Share your code in a form that makes it easy
2450 to reuse.
2451
2452 · Break-out the reusable code into one or more separate module files.
2453
2454 · Take the opportunity to reconsider and redesign the interfaces.
2455
2456 · In some cases the 'application' can then be reduced to a small
2457
2458 fragment of code built on top of the reusable modules. In these
2459 cases the application could invoked as:
2460
2461 % perl -e 'use Module::Name; method(@ARGV)' ...
2462 or
2463 % perl -mModule::Name ... (in perl5.002 or higher)
2464
2466 Perl does not enforce private and public parts of its modules as you
2467 may have been used to in other languages like C++, Ada, or Modula-17.
2468 Perl doesn't have an infatuation with enforced privacy. It would
2469 prefer that you stayed out of its living room because you weren't
2470 invited, not because it has a shotgun.
2471
2472 The module and its user have a contract, part of which is common law,
2473 and part of which is "written". Part of the common law contract is
2474 that a module doesn't pollute any namespace it wasn't asked to. The
2475 written contract for the module (A.K.A. documentation) may make other
2476 provisions. But then you know when you "use RedefineTheWorld" that
2477 you're redefining the world and willing to take the consequences.
2478
2479
2480
2481perl v5.10.1 2017-03-22 PERLMODLIB(1)