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