$ENV{LC_ALL} = 'C';
-open (OUT, ">perlmodlib.tmp") or die $!;
+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.pm', 'lib/Errno.pm';
+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/|;
- ($filename) = m|^(\S+)|;
- $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
- next unless $filename =~ m!\.p(m|od)$!;
- next unless open (MOD, "../lib/$filename");
+ 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;
+ }
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 (okay if there is respective .pod)\n";
- next;
+ warn "$filename missing =head1 NAME (OK if respective .pod exists)\n";
+ next;
}
my $title = <MOD>;
chomp($title);
close MOD;
my $perlname = $filename;
+ $perlname =~ s!^.*\b(ext|lib)/!!;
$perlname =~ s!\.p(m|od)$!!;
+ $perlname =~ s!\b(\w+)/\1\b!$1!;
$perlname =~ s!/!::!g;
+ # 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;
+ 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);
} 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';
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
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
=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:
+
+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
+=item South Africa
- ftp://ftp.is.co.za/programming/perl/CPAN/
- ftp://ftp.mweb.co.za/pub/mirrors/cpan/
- ftp://ftp.saix.net/pub/CPAN/
- ftp://ftp.sun.ac.za/CPAN/CPAN/
+ 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
=over 4
-=item *
-
-China
-
- ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
- http://www2.linuxforum.net/mirror/CPAN/
- http://cpan.shellhung.org/
- ftp://ftp.shellhung.org/pub/CPAN
+=item China
-=item *
-
-India
-
- http://cpan.in.freeos.com
- ftp://cpan.in.freeos.com/pub/CPAN/
-
-=item *
-
-Indonesia
-
- http://cpan.itb.web.id/
- ftp://mirrors.piksi.itb.ac.id/CPAN/
- http://CPAN.mweb.co.id/
- ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/
+ http://cpan.linuxforum.net/
+ http://cpan.shellhung.org/
+ ftp://ftp.shellhung.org/pub/CPAN
+ ftp://mirrors.hknet.com/CPAN
-=item *
+=item Indonesia
-Israel
+ http://mirrors.tf.itb.ac.id/cpan/
+ http://cpan.cbn.net.id/
+ ftp://ftp.cbn.net.id/mirror/CPAN
- http://www.iglu.org.il:/pub/CPAN/
- 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 Israel
-=item *
+ 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/
-Japan
+=item Japan
- ftp://ftp.u-aizu.ac.jp/pub/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.ayamura.org/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/
+ 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 *
+=item Malaysia
-Korea
+ http://cpan.MyBSD.org.my
+ http://mirror.leafbug.org/pub/CPAN
+ http://ossig.mncc.com.my/mirror/pub/CPAN
- http://mirror.Mazic.org/pub/CPAN
- ftp://mirror.Mazic.org/pub/CPAN
+=item Russian Federation
-=item *
+ http://cpan.tomsk.ru
+ ftp://cpan.tomsk.ru/
-Philippines
+=item Saudi Arabia
- http://www.adzu.edu.ph/CPAN
+ ftp://ftp.isu.net.sa/pub/CPAN/
-=item *
+=item Singapore
-Russian Federation
+ 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
- http://cpan.tomsk.ru
- ftp://cpan.tomsk.ru/pub/CPAN
+=item South Korea
-=item *
+ http://CPAN.bora.net/
+ ftp://ftp.bora.net/pub/CPAN/
+ http://mirror.kr.FreeBSD.org/CPAN
+ ftp://ftp.kr.FreeBSD.org/pub/CPAN
-Saudi Arabia
+=item Taiwan
- ftp://ftp.isu.net.sa/pub/CPAN/
+ 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 *
+=item Thailand
-Singapore
-
- http://cpan.hjc.edu.sg
-
-=item *
-
-South Korea
-
- http://CPAN.bora.net/
- ftp://ftp.bora.net/pub/CPAN/
- http://ftp.kornet.net/pub/CPAN/
- ftp://ftp.kornet.net/pub/CPAN/
- ftp://ftp.nuri.net/pub/CPAN/
- http://ftp.xgate.co.kr/cpan/
- ftp://ftp.xgate.co.kr/pub/mirror/CPAN
-
-=item *
-
-Taiwan
-
- ftp://ftp.ee.ncku.edu.tw/pub/perl/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.cs.riubon.ac.th/pub/mirrors/CPAN/
+ ftp://ftp.loxinfo.co.th/pub/cpan/
+ ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/
=back
=over 4
-=item *
+=item Costa Rica
-Costa Rica
-
- ftp://ftp.linux.co.cr/mirrors/CPAN/
- http://ftp.ucr.ac.cr/Unix/CPAN/
- ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
+ http://ftp.ucr.ac.cr/Unix/CPAN/
+ ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
=back
=over 4
-=item *
-
-Austria
-
- 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.skynet.be/pub/CPAN
- ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
-
-=item *
-
-Bulgaria
-
- http://cpan.lirex.net/
- ftp://ftp.lirex.net/pub/mirrors/CPAN
-
-=item *
-
-Croatia
-
- ftp://ftp.linux.hr/pub/CPAN/
-
-=item *
-
-Czech Republic
-
- http://ftp.fi.muni.cz/pub/CPAN/
- 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://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://cpan.kpnqwest.fi/
-
-=item *
-
-France
-
- 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://cpan.cict.fr/
- ftp://cpan.cict.fr/pub/CPAN/
- ftp://ftp.uvsq.fr/pub/perl/CPAN/
-
-=item *
-
-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://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/CPAN
- ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
- ftp://ftp.ntua.gr/pub/lang/perl/
-
-=item *
-
-Hungary
-
- http://cpan.artifact.hu/
- ftp://cpan.artifact.hu/CPAN/
- 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://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/
- ftp://ftp.flashnet.it/pub/CPAN/
-
-=item *
-
-Latvia
-
- http://kvin.lv/pub/CPAN/
-
-=item *
-
-Lithuania
-
- ftp://ftp.unix.lt/pub/CPAN/
+=item Austria
-=item *
-
-Netherlands
-
- ftp://download.xs4all.nl/pub/mirror/CPAN/
- ftp://ftp.nl.uu.net/pub/CPAN/
- ftp://ftp.nluug.nl/pub/languages/perl/CPAN/
- ftp://ftp.cpan.nl/pub/CPAN/
- http://www.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.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/
-
-=item *
-
-Portugal
+ http://cpan.inode.at/
+ ftp://cpan.inode.at
+ ftp://ftp.tuwien.ac.at/pub/CPAN/
- 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.ist.utl.pt/pub/CPAN/
- http://cpan.ip.pt/
- ftp://cpan.ip.pt/pub/cpan/
- ftp://ftp.netc.pt/pub/CPAN/
- ftp://ftp.up.pt/pub/CPAN
+=item Belgium
-=item *
-
-Romania
-
- ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
- ftp://ftp.dntis.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/
- http://cpan.sai.msu.ru/
- ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
+ 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 *
+=item Bosnia and Herzegovina
-Slovakia
+ http://cpan.blic.net/
- http://ftp.cvt.stuba.sk/pub/CPAN/
- ftp://ftp.cvt.stuba.sk/pub/CPAN/
+=item Bulgaria
-=item *
+ 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
-Slovenia
+=item Croatia
- ftp://ftp.arnes.si/software/perl/CPAN/
+ http://ftp.linux.hr/pub/CPAN/
+ ftp://ftp.linux.hr/pub/CPAN/
-=item *
+=item Czech Republic
-Spain
+ ftp://ftp.fi.muni.cz/pub/CPAN/
+ ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
- http://cpan.imasd.elmundo.es/
- ftp://ftp.rediris.es/mirror/CPAN/
- ftp://ftp.etse.urv.es/pub/perl/
+=item Denmark
-=item *
+ 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/
-Sweden
+=item Estonia
- http://ftp.du.se/CPAN/
- ftp://ftp.du.se/pub/CPAN/
- ftp://mirror.dataphone.se/pub/CPAN
- ftp://ftp.sunet.se/pub/lang/perl/CPAN/
+ ftp://ftp.ut.ee/pub/languages/perl/CPAN/
-=item *
+=item Finland
-Switzerland
+ ftp://ftp.funet.fi/pub/languages/perl/CPAN/
+ http://mirror.eunet.fi/CPAN
- ftp://ftp.danyk.ch/CPAN/
- ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
+=item France
-=item *
+ 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/
-Turkey
+=item Germany
- ftp://sunsite.bilkent.edu.tr/pub/languages/CPAN/
+ 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
-=item *
+ 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/
-Ukraine
-
- http://cpan.org.ua/
- ftp://cpan.org.ua/
- ftp://ftp.perl.org.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.crazygreek.co.uk
- ftp://ftp.demon.co.uk/pub/CPAN/
- ftp://ftp.flirble.org/pub/languages/perl/CPAN/
- ftp://ftp.plig.org/pub/CPAN/
- http://mirror.uklinux.net/CPAN/
- ftp://mirror.uklinux.net/pub/CPAN/
- http://cpan.mirrors.clockerz.net/
- ftp://ftp.clockerz.net/pub/CPAN/
- ftp://usit.shef.ac.uk/pub/packages/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
=over 4
-=item *
-
-Canada
+=item Canada
=over 8
-=item *
-
-Alberta
-
- http://sunsite.ualberta.ca/pub/Mirror/CPAN/
- ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
+=item Alberta
-=item *
+ http://cpan.sunsite.ualberta.ca/
+ ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
-Manitoba
+=item Manitoba
- http://theoryx5.uwinnipeg.ca/pub/CPAN/
- ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
+ http://theoryx5.uwinnipeg.ca/pub/CPAN/
+ ftp://theoryx5.uwinnipeg.ca/pub/CPAN/
-=item *
+=item Nova Scotia
-Nova Scotia
-
- ftp://cpan.chebucto.ns.ca/pub/CPAN/
-
-=item *
+ ftp://cpan.chebucto.ns.ca/pub/CPAN/
-Ontario
+=item Ontario
- ftp://ftp.crc.ca/pub/CPAN/
-
-=item *
-
-Quebec
-
- http://cpan.mirror.smartworker.org/
+ ftp://ftp.nrc.ca/pub/CPAN/
=back
-=item *
-
-Mexico
+=item Mexico
- http://cpan.azc.uam.mx
- ftp://cpan.azc.uam.mx/mirrors/CPAN
- http://cpan.unam.mx/
- ftp://cpan.unam.mx/pub/CPAN
- http://www.msg.com.mx/CPAN/
- ftp://ftp.msg.com.mx/pub/CPAN/
+ 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
+=item United States
=over 8
-=item *
+=item Alabama
-Alabama
+ http://mirror.hiwaay.net/CPAN/
+ ftp://mirror.hiwaay.net/CPAN/
- http://mirror.hiwaay.net/CPAN/
- ftp://mirror.hiwaay.net/CPAN/
+=item California
-=item *
+ 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
-California
+=item Colorado
- http://www.cpan.org/
- ftp://cpan.valueclick.com/pub/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.digisle.net/
- ftp://cpan.digisle.net/pub/CPAN
- http://www.perl.com/CPAN/
- http://download.sourceforge.net/mirrors/CPAN/
+ ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
+ http://cpan.four10.com
-=item *
+=item Delaware
-Colorado
+ http://ftp.lug.udel.edu/pub/CPAN
+ ftp://ftp.lug.udel.edu/pub/CPAN
- ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
+=item District of Columbia
-=item *
+ ftp://ftp.dc.aleron.net/pub/CPAN/
-Delaware
+=item Florida
- http://ftp.lug.udel.edu/pub/CPAN
- ftp://ftp.lug.udel.edu/pub/CPAN
+ 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 *
+=item Indiana
-District of Columbia
+ 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
- ftp://ftp.dc.aleron.net/pub/CPAN/
+=item Kentucky
-=item *
-
-Florida
-
- ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/
- http://mirror.csit.fsu.edu/pub/CPAN/
- ftp://mirror.csit.fsu.edu/pub/CPAN/
-
-=item *
-
-Illinois
-
- http://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
- ftp://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
-
-=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/
- ftp://cpan.in-span.net/
- 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/
-
-=item *
-
-Massachusetts
-
- ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
- http://cpan.mirrors.netnumina.com/
- ftp://mirrors.netnumina.com/cpan/
-
-=item *
-
-Michigan
-
- ftp://cpan.cse.msu.edu/
-
-=item *
-
-New Jersey
-
- ftp://ftp.cpanel.net/pub/CPAN/
- http://cpan.teleglobe.net/
- ftp://cpan.teleglobe.net/pub/CPAN
+ http://cpan.uky.edu/
+ ftp://cpan.uky.edu/pub/CPAN/
+ http://slugsite.louisville.edu/cpan
+ ftp://slugsite.louisville.edu/CPAN
-=item *
-
-New York
+=item Massachusetts
- ftp://ftp.exobit.org/pub/perl/CPAN
- http://cpan.belfry.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/
- ftp://mirrors.cloud9.net/pub/mirrors/CPAN/
+ 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 *
+=item Michigan
-North Carolina
+ ftp://cpan.cse.msu.edu/
+ http://cpan.calvin.edu/pub/CPAN
+ ftp://cpan.calvin.edu/pub/CPAN
- ftp://ftp.duke.edu/pub/perl/
+=item Nevada
-=item *
+ http://www.oss.redundant.com/pub/CPAN
+ ftp://www.oss.redundant.com/pub/CPAN
-Ohio
-
- ftp://ftp.loaded.net/pub/CPAN/
-
-=item *
+=item New Jersey
-Oklahoma
+ http://ftp.cpanel.net/pub/CPAN/
+ ftp://ftp.cpanel.net/pub/CPAN/
+ http://cpan.teleglobe.net/
+ ftp://cpan.teleglobe.net/pub/CPAN
- ftp://ftp.ou.edu/mirrors/CPAN/
+=item New York
-=item *
+ 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/
-Oregon
+=item North Carolina
- ftp://ftp.orst.edu/pub/CPAN
+ 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 *
+=item Oklahoma
-Pennsylvania
+ ftp://ftp.ou.edu/mirrors/CPAN/
- 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 Oregon
-=item *
+ ftp://ftp.orst.edu/pub/CPAN
-Tennessee
+=item Pennsylvania
- ftp://ftp.sunsite.utk.edu/pub/CPAN/
+ 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 *
+=item Tennessee
-Texas
+ ftp://ftp.sunsite.utk.edu/pub/CPAN/
- http://ftp.sedl.org/pub/mirrors/CPAN/
- ftp://mirror.telentente.com/pub/CPAN
+=item Texas
-=item *
+ http://ftp.sedl.org/pub/mirrors/CPAN/
+ http://www.binarycode.org/cpan
+ ftp://mirror.telentente.com/pub/CPAN
+ http://mirrors.theonlinerecordstore.com/CPAN
-Utah
+=item Utah
- ftp://mirror.xmission.com/CPAN/
+ ftp://mirror.xmission.com/CPAN/
-=item *
+=item Virginia
-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/
- 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://mirrors.phihost.com/CPAN/
- ftp://mirrors.phihost.com/CPAN/
- ftp://ruff.cs.jmu.edu/pub/CPAN/
- http://perl.Liquidation.com/CPAN/
+=item Washington
-=item *
+ 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/
-Washington
+=item Wisconsin
- 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/
+ 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
-=item *
-
-Wisconsin
-
- http://mirror.sit.wisc.edu/pub/CPAN/
- ftp://mirror.sit.wisc.edu/pub/CPAN/
+=back
=back
=over 4
-=item *
+=item Australia
-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
- 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/
+=item New Zealand
-=item *
+ ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
-New Zealand
+=item United States
- ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
+ http://aniani.ifa.hawaii.edu/CPAN/
+ ftp://aniani.ifa.hawaii.edu/CPAN/
=back
=over 4
-=item *
+=item Argentina
-Argentina
+ ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
+ http://www.linux.org.ar/mirrors/cpan
+ ftp://ftp.linux.org.ar/mirrors/cpan
- ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
+=item Brazil
-=item *
-
-Brazil
-
- ftp://cpan.pop-mg.com.br/pub/CPAN/
- ftp://ftp.matrix.com.br/pub/perl/CPAN/
+ 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
+=item Chile
- ftp://ftp.psinet.cl/pub/programming/perl/CPAN/
+ 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.cpan.org/SITES or ftp://www.cpan.org/SITES .
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
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:
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): $!";