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