#!../miniperl
-open (OUT, ">perlmodlib.tmp") or die $!;
-my (@pragma, @mod);
+$ENV{LC_ALL} = 'C';
+
+open (OUT, ">perlmodlib.pod") or die $!;
+my (@pragma, @mod, @MANIFEST);
+
open (MANIFEST, "../MANIFEST") or die $!;
+@MANIFEST = grep !m</(?:t|demo)/>, <MANIFEST>;
+push @MANIFEST, 'lib/Config.pod', 'lib/Errno.pm', 'lib/lib.pm',
+ 'lib/DynaLoader.pm', 'lib/XSLoader.pm';
+
+# If run in a clean source tree, these will be missing because they are
+# generated by the build.
+my %generated = (
+ 'encoding' => 'Allows you to write your script in non-ascii or non-utf8',
+ 'lib' => 'Manipulate @INC at compile time',
+ 'ops' => 'Restrict unsafe operations when compiling',
+ 'Config' => 'Access Perl configuration information',
+ 'DynaLoader' => 'Dynamically load C libraries into Perl code',
+ 'Errno' => 'System errno constants',
+ 'O' => 'Generic interface to Perl Compiler backends',
+ 'Safe' => 'Compile and execute code in restricted compartments',
+ 'XSLoader' => 'Dynamically load C libraries into Perl code',
+);
+
+# If run in a clean source tree, these should not be reported.
+# These are considered 'modules' by this script, but they really are not.
+my %suppressed = map {$_ => 1} qw(
+ B::O
+ Encode::encoding
+ Opcode::Safe
+ Opcode::ops
+);
+
+for (@MANIFEST) {
+ my $filename;
+ next unless s|^lib/|| or m|^ext/|;
+ my ($origfilename) = ($filename) = m|^(\S+)|;
+ $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
+ next unless $filename =~ m!\.p(m|od)$!;
+ unless (open (MOD, "../lib/$filename")) {
+ unless (open (MOD, "../$origfilename")) {
+ warn "Couldn't open ../$origfilename: $!";
+ next;
+ }
+ $filename = $origfilename;
+ }
+
-while (<MANIFEST>) {
- my $filename;
- next unless s|^lib/|| or m|^ext/|;
- ($filename) = /(\S+)/;
- $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
- next unless $filename =~ /\.pm$/;
- next unless open (MOD, "../lib/$filename");
my ($name, $thing);
my $foundit=0;
- {local $/="";
- while (<MOD>) {
- next unless /^=head1 NAME/;
- $foundit++;
- last;
+ {
+ local $/="";
+ while (<MOD>) {
+ next unless /^=head1 NAME/;
+ $foundit++;
+ last;
+ }
}
+ unless ($foundit) {
+ warn "$filename missing =head1 NAME (OK if respective .pod exists)\n";
+ next;
}
- next unless $foundit;
my $title = <MOD>;
chomp($title);
close MOD;
my $perlname = $filename;
- $perlname =~ s|\.pm$||;
- $perlname =~ s|/|::|g;
+ $perlname =~ s!^.*\b(ext|lib)/!!;
+ $perlname =~ s!\.p(m|od)$!!;
+ $perlname =~ s!\b(\w+)/\1\b!$1!;
+ $perlname =~ s!/!::!g;
- ($name, $thing) = split / - /, $title,2;
- next unless $name and $thing;
- $thing=~s/^perl pragma to //i;
- $thing=ucfirst($thing);
+ # modules with non standard locations
+ $perlname =~ s{Base64::QuotedPrint}{QuotedPrint};
+
+ ($name, $thing) = split / --? /, $title, 2;
+
+ unless ($name and $thing) {
+ warn "$filename missing name\n" unless $name;
+ warn "$filename missing thing\n" unless $thing;
+ next;
+ }
+
+ next if $suppressed{$perlname};
+
+ $thing =~ s/^perl pragma to //i;
+ $thing = ucfirst($thing);
$title = "=item $perlname\n\n$thing\n\n";
- if ($filename=~/[A-Z]/) {
+ if ($filename =~ /[A-Z]/) {
push @mod, $title;
} else {
push @pragma, $title;
}
+
+ # if we find a generated one via the MANIFEST, no need to add later.
+ delete $generated{$perlname};
+}
+while (my ($name,$desc) = each %generated) {
+ my $title = "=item $name\n\n$desc\n\n";
+ if ($name =~ /[A-Z]/) {
+ push @mod, $title;
+ } else {
+ push @pragma, $title;
+ }
}
print OUT <<'EOF';
-# Generated by perlmodlib.PL DO NOT EDIT!
+=for maintainers
+Generated by perlmodlib.PL -- DO NOT EDIT!
=head1 NAME
perlmodlib - constructing new Perl modules and finding existing ones
-=head1 DESCRIPTION
-
=head1 THE PERL MODULE LIBRARY
-Many modules are included the Perl distribution. These are described
+Many modules are included in the Perl distribution. These are described
below, and all end in F<.pm>. You may discover compiled library
-file (usually ending in F<.so>) or small pieces of modules to be
+files (usually ending in F<.so>) or small pieces of modules to be
autoloaded (ending in F<.al>); these were automatically generated
by the installation process. You may also discover files in the
library directory that end in either F<.pl> or F<.ph>. These are
manner with respect to namespace pollution because they use the
Exporter module. See their own documentation for details.
+It's possible that not all modules listed below are installed on your
+system. For example, the GDBM_File module will not be installed if you
+don't have the gdbm library.
+
=over 12
EOF
To find out I<all> modules installed on your system, including
those without documentation or outside the standard release,
-just do this:
+just use the following command (under the default win32 shell,
+double quotes should be used instead of single quotes).
- % find `perl -e 'print "@INC"'` -name '*.pm' -print
+ % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
+ 'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
+ no_chdir => 1 }, @INC'
+(The -T is here to prevent '.' from being listed in @INC.)
They should all have their own documentation installed and accessible
via your system man(1) command. If you do not have a B<find>
program, you can use the Perl B<find2perl> program instead, which
to fix your manpath. See L<perl> for details. If you have no
system B<man> command, you might try the B<perldoc> program.
+Note also that the command C<perldoc perllocal> gives you a (possibly
+incomplete) list of the modules that have been further installed on
+your system. (The perllocal.pod file is updated by the standard MakeMaker
+install process.)
+
=head2 Extension Modules
Extension modules are written in C (or a mix of Perl and C). They
are usually dynamically loaded into Perl if and when you need them,
-but may also be be linked in statically. Supported extension modules
+but may also be linked in statically. Supported extension modules
include Socket, Fcntl, and POSIX.
Many popular C extension modules do not come bundled (at least, not
for adequate testing and configuration across the multitude of
platforms on which Perl was beta-tested. You are encouraged to
look for them on CPAN (described below), or using web search engines
-like Alta Vista or Deja News.
+like Alta Vista or Google.
=head1 CPAN
replicated trove of Perl materials, including documentation, style
guides, tricks and traps, alternate ports to non-Unix systems and
occasional binary distributions for these. Search engines for
-CPAN can be found at http://cpan.perl.com/ and at
-http://theory.uwinnipeg.ca/mod_perl/cpan-search.pl .
+CPAN can be found at http://www.cpan.org/
Most importantly, CPAN includes around a thousand unbundled modules,
some of which require a C compiler to build. Major categories of
=back
-Registered CPAN sites as of this writing include the following.
-You should try to choose one close to you:
+The list of the registered CPAN sites as of this writing follows.
+Please note that the sorting order is alphabetical on fields:
-=over
+Continent
+ |
+ |-->Country
+ |
+ |-->[state/province]
+ |
+ |-->ftp
+ |
+ |-->[http]
+
+and thus the North American servers happen to be listed between the
+European and the South American sites.
+
+You should try to choose one close to you.
+
+=head2 Africa
+
+=over 4
+
+=item South Africa
+
+ http://ftp.rucus.ru.ac.za/pub/perl/CPAN/
+ ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/
+ ftp://ftp.is.co.za/programming/perl/CPAN/
+ ftp://ftp.saix.net/pub/CPAN/
+ ftp://ftp.sun.ac.za/CPAN/CPAN/
+
+=back
+
+=head2 Asia
+
+=over 4
+
+=item China
+
+ http://cpan.linuxforum.net/
+ http://cpan.shellhung.org/
+ ftp://ftp.shellhung.org/pub/CPAN
+ ftp://mirrors.hknet.com/CPAN
+
+=item Indonesia
+
+ http://mirrors.tf.itb.ac.id/cpan/
+ http://cpan.cbn.net.id/
+ ftp://ftp.cbn.net.id/mirror/CPAN
+
+=item Israel
+
+ ftp://ftp.iglu.org.il/pub/CPAN/
+ http://cpan.lerner.co.il/
+ http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
+ ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
+
+=item Japan
+
+ ftp://ftp.u-aizu.ac.jp/pub/CPAN
+ ftp://ftp.kddlabs.co.jp/CPAN/
+ ftp://ftp.ayamura.org/pub/CPAN/
+ ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
+ http://ftp.cpan.jp/
+ ftp://ftp.cpan.jp/CPAN/
+ ftp://ftp.dti.ad.jp/pub/lang/CPAN/
+ ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
+
+=item Malaysia
+
+ http://cpan.MyBSD.org.my
+ http://mirror.leafbug.org/pub/CPAN
+ http://ossig.mncc.com.my/mirror/pub/CPAN
+
+=item Russian Federation
+
+ http://cpan.tomsk.ru
+ ftp://cpan.tomsk.ru/
+
+=item Saudi Arabia
+
+ ftp://ftp.isu.net.sa/pub/CPAN/
+
+=item Singapore
+
+ http://CPAN.en.com.sg/
+ ftp://cpan.en.com.sg/
+ http://mirror.averse.net/pub/CPAN
+ ftp://mirror.averse.net/pub/CPAN
+ http://cpan.oss.eznetsols.org
+ ftp://ftp.oss.eznetsols.org/cpan
+
+=item South Korea
+
+ http://CPAN.bora.net/
+ ftp://ftp.bora.net/pub/CPAN/
+ http://mirror.kr.FreeBSD.org/CPAN
+ ftp://ftp.kr.FreeBSD.org/pub/CPAN
+
+=item Taiwan
+
+ ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
+ http://cpan.cdpa.nsysu.edu.tw/
+ ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN
+ http://ftp.isu.edu.tw/pub/CPAN
+ ftp://ftp.isu.edu.tw/pub/CPAN
+ ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
+ http://ftp.tku.edu.tw/pub/CPAN/
+ ftp://ftp.tku.edu.tw/pub/CPAN/
+
+=item Thailand
+
+ ftp://ftp.loxinfo.co.th/pub/cpan/
+ ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
+
+=back
+
+=head2 Central America
+
+=over 4
+
+=item Costa Rica
+
+ http://ftp.ucr.ac.cr/Unix/CPAN/
+ ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
+
+=back
+
+=head2 Europe
+
+=over 4
+
+=item Austria
+
+ http://cpan.inode.at/
+ ftp://cpan.inode.at
+ ftp://ftp.tuwien.ac.at/pub/CPAN/
+
+=item Belgium
+
+ http://ftp.easynet.be/pub/CPAN/
+ ftp://ftp.easynet.be/pub/CPAN/
+ http://cpan.skynet.be
+ ftp://ftp.cpan.skynet.be/pub/CPAN
+ ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
+
+=item Bosnia and Herzegovina
+
+ http://cpan.blic.net/
+
+=item Bulgaria
+
+ http://cpan.online.bg
+ ftp://cpan.online.bg/cpan
+ http://cpan.zadnik.org
+ ftp://ftp.zadnik.org/mirrors/CPAN/
+ http://cpan.lirex.net/
+ ftp://ftp.lirex.net/pub/mirrors/CPAN
+
+=item Croatia
+
+ http://ftp.linux.hr/pub/CPAN/
+ ftp://ftp.linux.hr/pub/CPAN/
+
+=item Czech Republic
+
+ ftp://ftp.fi.muni.cz/pub/CPAN/
+ ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
+
+=item Denmark
+
+ http://mirrors.sunsite.dk/cpan/
+ ftp://sunsite.dk/mirrors/cpan/
+ http://cpan.cybercity.dk
+ http://www.cpan.dk/CPAN/
+ ftp://www.cpan.dk/ftp.cpan.org/CPAN/
+
+=item Estonia
+
+ ftp://ftp.ut.ee/pub/languages/perl/CPAN/
+
+=item Finland
+
+ ftp://ftp.funet.fi/pub/languages/perl/CPAN/
+ http://mirror.eunet.fi/CPAN
+
+=item France
+
+ http://www.enstimac.fr/Perl/CPAN
+ http://ftp.u-paris10.fr/perl/CPAN
+ ftp://ftp.u-paris10.fr/perl/CPAN
+ http://cpan.mirrors.easynet.fr/
+ ftp://cpan.mirrors.easynet.fr/pub/ftp.cpan.org/
+ ftp://ftp.club-internet.fr/pub/perl/CPAN/
+ http://fr.cpan.org/
+ ftp://ftp.lip6.fr/pub/perl/CPAN/
+ ftp://ftp.oleane.net/pub/mirrors/CPAN/
+ ftp://ftp.pasteur.fr/pub/computing/CPAN/
+ http://mir2.ovh.net/ftp.cpan.org
+ ftp://mir1.ovh.net/ftp.cpan.org
+ http://ftp.crihan.fr/mirrors/ftp.cpan.org/
+ ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/
+ http://ftp.u-strasbg.fr/CPAN
+ ftp://ftp.u-strasbg.fr/CPAN
+ ftp://cpan.cict.fr/pub/CPAN/
+ ftp://ftp.uvsq.fr/pub/perl/CPAN/
+
+=item Germany
+
+ ftp://ftp.rub.de/pub/CPAN/
+ ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
+ ftp://ftp.uni-erlangen.de/pub/source/CPAN/
+ ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
+ http://pandemonium.tiscali.de/pub/CPAN/
+ ftp://pandemonium.tiscali.de/pub/CPAN/
+ http://ftp.gwdg.de/pub/languages/perl/CPAN/
+ ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
+ ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
+ ftp://ftp.leo.org/pub/CPAN/
+ http://cpan.noris.de/
+ ftp://cpan.noris.de/pub/CPAN/
+ ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
+ ftp://ftp.gmd.de/mirrors/CPAN/
+
+=item Greece
+
+ ftp://ftp.acn.gr/pub/lang/perl
+ ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
+ ftp://ftp.ntua.gr/pub/lang/perl/
+
+=item Hungary
+
+ http://ftp.kfki.hu/packages/perl/CPAN/
+ ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
+
+=item Iceland
+
+ http://ftp.rhnet.is/pub/CPAN/
+ ftp://ftp.rhnet.is/pub/CPAN/
+
+=item Ireland
+
+ http://cpan.indigo.ie/
+ ftp://cpan.indigo.ie/pub/CPAN/
+ http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
+ ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
+ http://sunsite.compapp.dcu.ie/pub/perl/
+ ftp://sunsite.compapp.dcu.ie/pub/perl/
+
+=item Italy
+
+ http://cpan.nettuno.it/
+ http://gusp.dyndns.org/CPAN/
+ ftp://gusp.dyndns.org/pub/CPAN
+ http://softcity.iol.it/cpan
+ ftp://softcity.iol.it/pub/cpan
+ ftp://ftp.unina.it/pub/Other/CPAN/CPAN/
+ ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
+ ftp://cis.uniRoma2.it/CPAN/
+ ftp://ftp.edisontel.it/pub/CPAN_Mirror/
+ http://cpan.flashnet.it/
+ ftp://ftp.flashnet.it/pub/CPAN/
+
+=item Latvia
+
+ http://kvin.lv/pub/CPAN/
+
+=item Lithuania
+
+ ftp://ftp.unix.lt/pub/CPAN/
+
+=item Netherlands
+
+ ftp://download.xs4all.nl/pub/mirror/CPAN/
+ ftp://ftp.nl.uu.net/pub/CPAN/
+ ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
+ http://cpan.cybercomm.nl/
+ ftp://mirror.cybercomm.nl/pub/CPAN
+ ftp://mirror.vuurwerk.nl/pub/CPAN/
+ ftp://ftp.cpan.nl/pub/CPAN/
+ http://ftp.easynet.nl/mirror/CPAN
+ ftp://ftp.easynet.nl/mirror/CPAN
+ http://archive.cs.uu.nl/mirror/CPAN/
+ ftp://ftp.cs.uu.nl/mirror/CPAN/
+
+=item Norway
+
+ ftp://ftp.uninett.no/pub/languages/perl/CPAN
+ ftp://ftp.uit.no/pub/languages/perl/cpan/
+
+=item Poland
+
+ ftp://ftp.mega.net.pl/CPAN
+ ftp://ftp.man.torun.pl/pub/doc/CPAN/
+ ftp://sunsite.icm.edu.pl/pub/CPAN/
+
+=item Portugal
+
+ ftp://ftp.ua.pt/pub/CPAN/
+ ftp://perl.di.uminho.pt/pub/CPAN/
+ http://cpan.dei.uc.pt/
+ ftp://ftp.dei.uc.pt/pub/CPAN
+ ftp://ftp.nfsi.pt/pub/CPAN
+ http://ftp.linux.pt/pub/mirrors/CPAN
+ ftp://ftp.linux.pt/pub/mirrors/CPAN
+ http://cpan.ip.pt/
+ ftp://cpan.ip.pt/pub/cpan/
+ http://cpan.telepac.pt/
+ ftp://ftp.telepac.pt/pub/cpan/
+
+=item Romania
+
+ ftp://ftp.bio-net.ro/pub/CPAN
+ ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
+ ftp://ftp.lug.ro/CPAN
+ ftp://ftp.roedu.net/pub/CPAN/
+ ftp://ftp.dntis.ro/pub/cpan/
+ ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
+ http://cpan.ambra.ro/
+ ftp://ftp.ambra.ro/pub/CPAN
+ ftp://ftp.dnttm.ro/pub/CPAN/
+ ftp://ftp.lasting.ro/pub/CPAN
+ ftp://ftp.timisoara.roedu.net/mirrors/CPAN/
+
+=item Russia
+
+ ftp://ftp.chg.ru/pub/lang/perl/CPAN/
+ http://cpan.rinet.ru/
+ ftp://cpan.rinet.ru/pub/mirror/CPAN/
+ ftp://ftp.aha.ru/pub/CPAN/
+ ftp://ftp.corbina.ru/pub/CPAN/
+ http://cpan.sai.msu.ru/
+ ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
+
+=item Slovakia
+
+ ftp://ftp.cvt.stuba.sk/pub/CPAN/
+
+=item Slovenia
+
+ ftp://ftp.arnes.si/software/perl/CPAN/
+
+=item Spain
+
+ http://cpan.imasd.elmundo.es/
+ ftp://ftp.rediris.es/mirror/CPAN/
+ ftp://ftp.ri.telefonica-data.net/CPAN
+ ftp://ftp.etse.urv.es/pub/perl/
+
+=item Sweden
+
+ http://ftp.du.se/CPAN/
+ ftp://ftp.du.se/pub/CPAN/
+ http://mirror.dataphone.se/CPAN
+ ftp://mirror.dataphone.se/pub/CPAN
+ ftp://ftp.sunet.se/pub/lang/perl/CPAN/
+
+=item Switzerland
+
+ http://cpan.mirror.solnet.ch/
+ ftp://ftp.solnet.ch/mirror/CPAN/
+ ftp://ftp.danyk.ch/CPAN/
+ ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
+
+=item Turkey
+
+ http://ftp.ulak.net.tr/perl/CPAN/
+ ftp://ftp.ulak.net.tr/perl/CPAN
+ ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
+
+=item Ukraine
+
+ http://cpan.org.ua/
+ ftp://cpan.org.ua/
+ ftp://ftp.perl.org.ua/pub/CPAN/
+ http://no-more.kiev.ua/CPAN/
+ ftp://no-more.kiev.ua/pub/CPAN/
+
+=item United Kingdom
+
+ http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
+ ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
+ http://cpan.teleglobe.net/
+ ftp://cpan.teleglobe.net/pub/CPAN
+ http://cpan.mirror.anlx.net/
+ ftp://ftp.mirror.anlx.net/CPAN/
+ http://cpan.etla.org/
+ ftp://cpan.etla.org/pub/CPAN
+ ftp://ftp.demon.co.uk/pub/CPAN/
+ http://cpan.m.flirble.org/
+ ftp://ftp.flirble.org/pub/languages/perl/CPAN/
+ ftp://ftp.plig.org/pub/CPAN/
+ http://cpan.hambule.co.uk/
+ http://cpan.mirrors.clockerz.net/
+ ftp://ftp.clockerz.net/pub/CPAN/
+ ftp://usit.shef.ac.uk/pub/packages/CPAN/
+
+=back
+
+=head2 North America
+
+=over 4
+
+=item Canada
+
+=over 8
+
+=item Alberta
+
+ http://cpan.sunsite.ualberta.ca/
+ ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
+
+=item Manitoba
+
+ http://theoryx5.uwinnipeg.ca/pub/CPAN/
+ ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
+
+=item Nova Scotia
+
+ ftp://cpan.chebucto.ns.ca/pub/CPAN/
+
+=item Ontario
+
+ ftp://ftp.nrc.ca/pub/CPAN/
+
+=back
+
+=item Mexico
+
+ http://cpan.azc.uam.mx
+ ftp://cpan.azc.uam.mx/mirrors/CPAN
+ http://www.cpan.unam.mx/
+ ftp://ftp.unam.mx/pub/CPAN
+ http://www.msg.com.mx/CPAN/
+ ftp://ftp.msg.com.mx/pub/CPAN/
+
+=item United States
+
+=over 8
+
+=item Alabama
+
+ http://mirror.hiwaay.net/CPAN/
+ ftp://mirror.hiwaay.net/CPAN/
+
+=item California
+
+ http://cpan.develooper.com/
+ http://www.cpan.org/
+ ftp://cpan.valueclick.com/pub/CPAN/
+ http://www.mednor.net/ftp/pub/mirrors/CPAN/
+ ftp://ftp.mednor.net/pub/mirrors/CPAN/
+ http://mirrors.gossamer-threads.com/CPAN
+ ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
+ http://mirrors.kernel.org/cpan/
+ ftp://mirrors.kernel.org/pub/CPAN
+ http://cpan-sj.viaverio.com/
+ ftp://cpan-sj.viaverio.com/pub/CPAN/
+ http://cpan.digisle.net/
+ ftp://cpan.digisle.net/pub/CPAN
+ http://www.perl.com/CPAN/
+ http://www.uberlan.net/CPAN
+
+=item Colorado
+
+ ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
+ http://cpan.four10.com
+
+=item Delaware
+
+ http://ftp.lug.udel.edu/pub/CPAN
+ ftp://ftp.lug.udel.edu/pub/CPAN
+
+=item District of Columbia
+
+ ftp://ftp.dc.aleron.net/pub/CPAN/
+
+=item Florida
+
+ ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
+ http://mirror.csit.fsu.edu/pub/CPAN/
+ ftp://mirror.csit.fsu.edu/pub/CPAN/
+ http://cpan.mirrors.nks.net/
+
+=item Indiana
+
+ ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/
+ http://cpan.netnitco.net/
+ ftp://cpan.netnitco.net/pub/mirrors/CPAN/
+ http://archive.progeny.com/CPAN/
+ ftp://archive.progeny.com/CPAN/
+ http://fx.saintjoe.edu/pub/CPAN
+ ftp://ftp.saintjoe.edu/pub/CPAN
+ http://csociety-ftp.ecn.purdue.edu/pub/CPAN
+ ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
+
+=item Kentucky
+
+ http://cpan.uky.edu/
+ ftp://cpan.uky.edu/pub/CPAN/
+ http://slugsite.louisville.edu/cpan
+ ftp://slugsite.louisville.edu/CPAN
+
+=item Massachusetts
+
+ http://mirrors.towardex.com/CPAN
+ ftp://mirrors.towardex.com/pub/CPAN
+ ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
+
+=item Michigan
+
+ ftp://cpan.cse.msu.edu/
+ http://cpan.calvin.edu/pub/CPAN
+ ftp://cpan.calvin.edu/pub/CPAN
+
+=item Nevada
+
+ http://www.oss.redundant.com/pub/CPAN
+ ftp://www.oss.redundant.com/pub/CPAN
+
+=item New Jersey
+
+ http://ftp.cpanel.net/pub/CPAN/
+ ftp://ftp.cpanel.net/pub/CPAN/
+ http://cpan.teleglobe.net/
+ ftp://cpan.teleglobe.net/pub/CPAN
+
+=item New York
+
+ http://cpan.belfry.net/
+ http://cpan.erlbaum.net/
+ ftp://cpan.erlbaum.net/
+ http://cpan.thepirtgroup.com/
+ ftp://cpan.thepirtgroup.com/
+ ftp://ftp.stealth.net/pub/CPAN/
+ http://www.rge.com/pub/languages/perl/
+ ftp://ftp.rge.com/pub/languages/perl/
+
+=item North Carolina
-=item Africa
-
- South Africa ftp://ftp.is.co.za/programming/perl/CPAN/
- ftp://ftp.saix.net/pub/CPAN/
- ftp://ftpza.co.za/pub/mirrors/cpan/
- ftp://ftp.sun.ac.za/CPAN/
-
-=item Asia
-
- China ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
- http://www2.linuxforum.net/mirror/CPAN/
- Hong Kong http://CPAN.pacific.net.hk/
- ftp://ftp.pacific.net.hk/pub/mirror/CPAN/
- Indonesia http://piksi.itb.ac.id/CPAN/
- ftp://mirrors.piksi.itb.ac.id/CPAN/
- http://CPAN.mweb.co.id/
- ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/
- Israel http://www.iglu.org.il:/pub/CPAN/
- ftp://ftp.iglu.org.il/pub/CPAN/
- http://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
- ftp://bioinfo.weizmann.ac.il/pub/software/perl/CPAN/
- Japan ftp://ftp.u-aizu.ac.jp/pub/lang/perl/CPAN/
- ftp://ftp.kddlabs.co.jp/CPAN/
- http://mirror.nucba.ac.jp/mirror/Perl/
- ftp://mirror.nucba.ac.jp/mirror/Perl/
- ftp://ftp.meisei-u.ac.jp/pub/CPAN/
- ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
- ftp://ftp.dti.ad.jp/pub/lang/CPAN/
- ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
- Saudi Arabia ftp://ftp.isu.net.sa/pub/CPAN/
- Singapore http://ftp.nus.edu.sg/unix/perl/CPAN/
- ftp://ftp.nus.edu.sg/pub/unix/perl/CPAN/
- South Korea http://CPAN.bora.net/
- ftp://ftp.bora.net/pub/CPAN/
- http://ftp.kornet.net/CPAN/
- ftp://ftp.kornet.net/pub/CPAN/
- ftp://ftp.nuri.net/pub/CPAN/
- Taiwan ftp://coda.nctu.edu.tw/computer-languages/perl/CPAN/
- ftp://ftp.ee.ncku.edu.tw/pub/perl/CPAN/
- ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
- Thailand http://download.nectec.or.th/CPAN/
- ftp://ftp.nectec.or.th/pub/languages/CPAN/
- ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
-
-=item Central America
-
- Costa Rica ftp://ftp.linux.co.cr/mirrors/CPAN/
- http://ftp.ucr.ac.cr/Unix/CPAN/
- ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
-
-=item Europe
-
- Austria ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/
- Belgium http://ftp.easynet.be/CPAN/
- ftp://ftp.easynet.be/CPAN/
- ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
- Bulgaria ftp://ftp.ntrl.net/pub/mirrors/CPAN/
- Croatia ftp://ftp.linux.hr/pub/CPAN/
- Czech Republic http://www.fi.muni.cz/pub/perl/
- ftp://ftp.fi.muni.cz/pub/perl/
- ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
- Denmark ftp://sunsite.auc.dk/pub/languages/perl/CPAN/
- http://www.cpan.dk/CPAN/
- England http://www.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN
- ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
- ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
- ftp://ftp.flirble.org/pub/languages/perl/CPAN/
- ftp://ftp.plig.org/pub/CPAN/
- ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
- http://mirror.uklinux.net/CPAN/
- ftp://mirror.uklinux.net/pub/CPAN/
- ftp://usit.shef.ac.uk/pub/packages/CPAN/
- Estonia ftp://ftp.ut.ee/pub/languages/perl/CPAN/
- Finland ftp://ftp.funet.fi/pub/languages/perl/CPAN/
- France ftp://cpan.ftp.worldonline.fr/pub/CPAN/
- ftp://ftp.club-internet.fr/pub/perl/CPAN/
- ftp://ftp.lip6.fr/pub/perl/CPAN/
- ftp://ftp.oleane.net/pub/mirrors/CPAN/
- ftp://ftp.pasteur.fr/pub/computing/CPAN/
- ftp://cpan.cict.fr/pub/CPAN/
- ftp://ftp.uvsq.fr/pub/perl/CPAN/
- Germany ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
- ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
- ftp://ftp.uni-erlangen.de/pub/source/CPAN/
- ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN
- ftp://ftp.gigabell.net/pub/CPAN/
- http://ftp.gwdg.de/pub/languages/perl/CPAN/
- ftp://ftp.gwdg.de/pub/languages/perl/CPAN/
- ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
- ftp://ftp.leo.org/pub/comp/general/programming/languages/script/perl/CPAN/
- ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/
- ftp://ftp.gmd.de/packages/CPAN/
- Greece ftp://ftp.ntua.gr/pub/lang/perl/
- Hungary http://cpan.artifact.hu/
- ftp://cpan.artifact.hu/CPAN/
- ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
- Iceland http://cpan.gm.is/
- ftp://ftp.gm.is/pub/CPAN/
- Ireland http://cpan.indigo.ie/
- ftp://cpan.indigo.ie/pub/CPAN/
- http://sunsite.compapp.dcu.ie/pub/perl/
- ftp://sunsite.compapp.dcu.ie/pub/perl/
- Italy http://cpan.nettuno.it/
- http://softcity.iol.it/cpan
- ftp://softcity.iol.it/pub/cpan
- ftp://ftp.unina.it/pub/Other/CPAN/
- ftp://ftp.unipi.it/pub/mirror/perl/CPAN/
- ftp://cis.uniRoma2.it/CPAN/
- ftp://ftp.edisontel.it/pub/CPAN_Mirror/
- ftp://ftp.flashnet.it/pub/CPAN/
- Latvia http://kvin.lv/pub/CPAN/
- Netherlands ftp://download.xs4all.nl/pub/mirror/CPAN/
- ftp://ftp.nl.uu.net/pub/CPAN/
- ftp://ftp.cpan.nl/pub/CPAN/
- ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
- http://www.cs.uu.nl/mirror/CPAN/
- ftp://ftp.cs.uu.nl/mirror/CPAN/
- Norway ftp://sunsite.uio.no/pub/languages/perl/CPAN/
- ftp://ftp.uit.no/pub/languages/perl/cpan/
- Poland ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
- ftp://ftp.mega.net.pl/pub/mirrors/ftp.perl.com/
- ftp://ftp.man.torun.pl/pub/doc/CPAN/
- ftp://sunsite.icm.edu.pl/pub/CPAN/
- Portugal ftp://ftp.ua.pt/pub/CPAN/
- ftp://perl.di.uminho.pt/pub/CPAN/
- ftp://ftp.ist.utl.pt/pub/CPAN/
- ftp://ftp.netc.pt/pub/CPAN/
- Romania ftp://archive.logicnet.ro/mirrors/ftp.cpan.org/CPAN/
- ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
- ftp://ftp.dntis.ro/pub/cpan/
- ftp://ftp.opsynet.com/cpan/
- ftp://ftp.dnttm.ro/pub/CPAN/
- Russia ftp://ftp.chg.ru/pub/lang/perl/CPAN/
- http://cpan.rinet.ru/
- ftp://cpan.rinet.ru/pub/mirror/CPAN/
- ftp://ftp.aha.ru/pub/CPAN/
- ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
- Slovakia ftp://ftp.entry.sk/pub/languages/perl/CPAN/
- Slovenia ftp://ftp.arnes.si/software/perl/CPAN/
- Spain ftp://ftp.rediris.es/mirror/CPAN/
- ftp://ftp.etse.urv.es/pub/perl/
- Sweden http://ftp.du.se/CPAN/
- ftp://ftp.du.se/pub/CPAN/
- ftp://ftp.sunet.se/pub/lang/perl/CPAN/
- Switzerland ftp://ftp.danyk.ch/CPAN/
- ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
- Turkey ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
-
-=item North America
-
- Alberta http://sunsite.ualberta.ca/pub/Mirror/CPAN/
- ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
- Alabama http://mirror.hiwaay.net/CPAN/
- ftp://mirror.hiwaay.net/CPAN/
- California http://www.cpan.org/
- ftp://ftp.cpan.org/CPAN/
- ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
- ftp://ftp.digital.com/pub/plan/perl/CPAN/
- http://www.kernel.org/pub/mirrors/cpan/
- ftp://ftp.kernel.org/pub/mirrors/cpan/
- http://www.perl.com/CPAN/
- http://download.sourceforge.net/mirrors/CPAN/
- Colorado ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
- Florida ftp://ftp.cise.ufl.edu/pub/perl/CPAN/
- Georgia ftp://ftp.twoguys.org/CPAN/
- Illinois http://www.neurogames.com/mirrors/CPAN
- Indiana ftp://ftp.uwsg.indiana.edu/pub/perl/CPAN/
- http://cpan.nitco.com/
- ftp://cpan.nitco.com/pub/CPAN/
- ftp://cpan.in-span.net/
- http://csociety-ftp.ecn.purdue.edu/pub/CPAN
- ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
- Manitoba http://theoryx5.uwinnipeg.ca/pub/CPAN/
- ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
- Massachusetts ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
- ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/
- Mexico http://www.msg.com.mx/CPAN/
- ftp://ftp.msg.com.mx/pub/CPAN/
- New Jersey ftp://ftp.cpanel.net/pub/CPAN/
- New York ftp://ftp.freesoftware.com/pub/perl/CPAN/
- http://www.deao.net/mirrors/CPAN/
- ftp://ftp.deao.net/pub/CPAN/
- ftp://ftp.stealth.net/pub/mirrors/ftp.cpan.org/pub/CPAN/
- http://mirror.nyc.anidea.com/CPAN/
- ftp://mirror.nyc.anidea.com/pub/CPAN/
- http://www.rge.com/pub/languages/perl/
- ftp://ftp.rge.com/pub/languages/perl/
- ftp://mirrors.cloud9.net/pub/mirrors/CPAN/
- North Carolina ftp://ftp.duke.edu/pub/perl/
- Nova Scotia ftp://cpan.chebucto.ns.ca/pub/CPAN/
- Ohio ftp://ftp.loaded.net/pub/CPAN/
- Oklahoma ftp://ftp.ou.edu/mirrors/CPAN/
- Ontario ftp://ftp.crc.ca/pub/packages/lang/perl/CPAN/
- Oregon ftp://ftp.orst.edu/pub/packages/CPAN/
- Pennsylvania http://ftp.epix.net/CPAN/
- ftp://ftp.epix.net/pub/languages/perl/
- ftp://carroll.cac.psu.edu/pub/CPAN/
- Tennessee ftp://ftp.sunsite.utk.edu/pub/CPAN/
- Texas http://ftp.sedl.org/pub/mirrors/CPAN/
- http://jhcloos.com/pub/mirror/CPAN/
- ftp://jhcloos.com/pub/mirror/CPAN/
- Utah ftp://mirror.xmission.com/CPAN/
- Virginia http://mirrors.rcn.net/pub/lang/CPAN/
- ftp://mirrors.rcn.net/pub/lang/CPAN/
- ftp://ruff.cs.jmu.edu/pub/CPAN/
- Washington http://cpan.llarian.net/
- ftp://cpan.llarian.net/pub/CPAN/
- ftp://ftp-mirror.internap.com/pub/CPAN/
- ftp://ftp.spu.edu/pub/CPAN/
-
-=item Oceania
-
- Australia http://ftp.planetmirror.com/pub/CPAN/
- ftp://ftp.planetmirror.com/pub/CPAN/
- ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
- ftp://cpan.topend.com.au/pub/CPAN/
- New Zealand ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
-
-=item South America
-
- Argentina ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
- Brazil ftp://cpan.pop-mg.com.br/pub/CPAN/
- ftp://ftp.matrix.com.br/pub/perl/
- ftp://cpan.if.usp.br/pub/mirror/CPAN/
- Chile ftp://ftp.psinet.cl/pub/programming/perl/CPAN/
- ftp://sunsite.dcc.uchile.cl/pub/lang/perl/
+ http://www.ibiblio.org/pub/languages/perl/CPAN
+ ftp://ftp.ibiblio.org/pub/languages/perl/CPAN
+ ftp://ftp.duke.edu/pub/perl/
+ ftp://ftp.ncsu.edu/pub/mirror/CPAN/
+
+=item Oklahoma
+
+ ftp://ftp.ou.edu/mirrors/CPAN/
+
+=item Oregon
+
+ ftp://ftp.orst.edu/pub/CPAN
+
+=item Pennsylvania
+
+ http://ftp.epix.net/CPAN/
+ ftp://ftp.epix.net/pub/languages/perl/
+ http://mirrors.phenominet.com/pub/CPAN/
+ ftp://mirrors.phenominet.com/pub/CPAN/
+ http://cpan.pair.com/
+ ftp://cpan.pair.com/pub/CPAN/
+ ftp://carroll.cac.psu.edu/pub/CPAN/
+
+=item Tennessee
+
+ ftp://ftp.sunsite.utk.edu/pub/CPAN/
+
+=item Texas
+
+ http://ftp.sedl.org/pub/mirrors/CPAN/
+ http://www.binarycode.org/cpan
+ ftp://mirror.telentente.com/pub/CPAN
+ http://mirrors.theonlinerecordstore.com/CPAN
+
+=item Utah
+
+ ftp://mirror.xmission.com/CPAN/
+
+=item Virginia
+
+ http://cpan-du.viaverio.com/
+ ftp://cpan-du.viaverio.com/pub/CPAN/
+ http://mirrors.rcn.net/pub/lang/CPAN/
+ ftp://mirrors.rcn.net/pub/lang/CPAN/
+ http://perl.secsup.org/
+ ftp://perl.secsup.org/pub/perl/
+ http://noc.cvaix.com/mirrors/CPAN/
+
+=item Washington
+
+ http://cpan.llarian.net/
+ ftp://cpan.llarian.net/pub/CPAN/
+ http://cpan.mirrorcentral.com/
+ ftp://ftp.mirrorcentral.com/pub/CPAN/
+ ftp://ftp-mirror.internap.com/pub/CPAN/
+
+=item Wisconsin
+
+ http://mirror.sit.wisc.edu/pub/CPAN/
+ ftp://mirror.sit.wisc.edu/pub/CPAN/
+ http://mirror.aphix.com/CPAN
+ ftp://mirror.aphix.com/pub/CPAN
+
+=back
+
+=back
+
+=head2 Oceania
+
+=over 4
+
+=item Australia
+
+ http://ftp.planetmirror.com/pub/CPAN/
+ ftp://ftp.planetmirror.com/pub/CPAN/
+ ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
+ ftp://cpan.topend.com.au/pub/CPAN/
+ http://cpan.mirrors.ilisys.com.au
+
+=item New Zealand
+
+ ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
+
+=item United States
+
+ http://aniani.ifa.hawaii.edu/CPAN/
+ ftp://aniani.ifa.hawaii.edu/CPAN/
+
+=back
+
+=head2 South America
+
+=over 4
+
+=item Argentina
+
+ ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
+ http://www.linux.org.ar/mirrors/cpan
+ ftp://ftp.linux.org.ar/mirrors/cpan
+
+=item Brazil
+
+ ftp://cpan.pop-mg.com.br/pub/CPAN/
+ ftp://ftp.matrix.com.br/pub/perl/CPAN/
+ http://cpan.hostsul.com.br/
+ ftp://cpan.hostsul.com.br/
+
+=item Chile
+
+ http://cpan.netglobalis.net/
+ ftp://cpan.netglobalis.net/pub/CPAN/
=back
+=head2 RSYNC Mirrors
+
+ www.linux.org.ar::cpan
+ theoryx5.uwinnipeg.ca::CPAN
+ ftp.shellhung.org::CPAN
+ rsync.nic.funet.fi::CPAN
+ ftp.u-paris10.fr::CPAN
+ mir1.ovh.net::CPAN
+ rsync://ftp.crihan.fr::CPAN
+ ftp.gwdg.de::FTP/languages/perl/CPAN/
+ ftp.leo.org::CPAN
+ ftp.cbn.net.id::CPAN
+ rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
+ ftp.iglu.org.il::CPAN
+ gusp.dyndns.org::cpan
+ ftp.kddlabs.co.jp::cpan
+ ftp.ayamura.org::pub/CPAN/
+ mirror.leafbug.org::CPAN
+ rsync.en.com.sg::CPAN
+ mirror.averse.net::cpan
+ rsync.oss.eznetsols.org
+ ftp.kr.FreeBSD.org::CPAN
+ ftp.solnet.ch::CPAN
+ cpan.cdpa.nsysu.edu.tw::CPAN
+ cpan.teleglobe.net::CPAN
+ rsync://rsync.mirror.anlx.net::CPAN
+ ftp.sedl.org::cpan
+ ibiblio.org::CPAN
+ cpan-du.viaverio.com::CPAN
+ aniani.ifa.hawaii.edu::CPAN
+ archive.progeny.com::CPAN
+ rsync://slugsite.louisville.edu::CPAN
+ mirror.aphix.com::CPAN
+ cpan.teleglobe.net::CPAN
+ ftp.lug.udel.edu::cpan
+ mirrors.kernel.org::mirrors/CPAN
+ mirrors.phenominet.com::CPAN
+ cpan.pair.com::CPAN
+ cpan-sj.viaverio.com::CPAN
+ mirror.csit.fsu.edu::CPAN
+ csociety-ftp.ecn.purdue.edu::CPAN
+
For an up-to-date listing of CPAN sites,
-see http://www.perl.com/perl/CPAN/SITES or ftp://www.perl.com/CPAN/SITES .
+see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES .
=head1 Modules: Creation, Use, and Abuse
Does your module pass the 'empty subclass' test? If you say
C<@SUBCLASS::ISA = qw(YOURCLASS);> your applications should be able
to use SUBCLASS in exactly the same way as YOURCLASS. For example,
-does your application still work if you change: C<$obj = new YOURCLASS;>
-into: C<$obj = new SUBCLASS;> ?
+does your application still work if you change: C<< $obj = YOURCLASS->new(); >>
+into: C<< $obj = SUBCLASS->new(); >> ?
Avoid keeping any state information in your packages. It makes it
difficult for multiple other packages to use yours. Keep state
=over 4
-=item Adding a Copyright Notice.
+=item *
+Adding a Copyright Notice.
How you choose to license your work is a personal decision.
The general mechanism is to assert your Copyright and then make
a declaration of how others may copy/use/modify your work.
-Perl, for example, is supplied with two types of licence: The GNU
-GPL and The Artistic Licence (see the files README, Copying, and
-Artistic). Larry has good reasons for NOT just using the GNU GPL.
+Perl, for example, is supplied with two types of licence: The GNU GPL
+and The Artistic Licence (see the files README, Copying, and Artistic,
+or L<perlgpl> and L<perlartistic>). Larry has good reasons for NOT
+just using the GNU GPL.
My personal recommendation, out of respect for Larry, Perl, and the
Perl community at large is to state something simply like:
Follow the instructions and links on:
- http://www.perl.com/CPAN/modules/00modlist.long.html
- http://www.perl.com/CPAN/modules/04pause.html
+ http://www.cpan.org/modules/00modlist.long.html
+ http://www.cpan.org/modules/04pause.html
or upload to one of these sites:
EOF
close MANIFEST or warn "$0: failed to close MANIFEST (../MANIFEST): $!";
-close OUT or warn "$0: failed to close OUT (perlmodlib.tmp): $!";
+close OUT or warn "$0: failed to close OUT (perlmodlib.pod): $!";