X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlmodlib.PL;h=23251ac9bbb0f270f5e9663f7ee8fff5eea179d0;hb=7b059540b116737402869fbccad6d5c540c7f62e;hp=969dde92f750bbc395dfb93e43e0e8dfd149ffa9;hpb=b7da254d91daf34c2ec1b1f8cdcea45c11594cef;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlmodlib.PL b/pod/perlmodlib.PL index 969dde9..23251ac 100644 --- a/pod/perlmodlib.PL +++ b/pod/perlmodlib.PL @@ -1,74 +1,92 @@ #!../miniperl +use strict; +use warnings; + $ENV{LC_ALL} = 'C'; +use FindBin; +chdir $FindBin::Bin or die "$0: Can't chdir $FindBin::Bin: $!"; + +my $Quiet = @ARGV && $ARGV[0] eq '-q'; + open (OUT, ">perlmodlib.pod") or die $!; -my (@pragma, @mod, @MANIFEST); +my (@pragma, @mod, @files); + +# MANIFEST itself is Unix style filenames, so we have to assume that Unix style +# filenames will work. open (MANIFEST, "../MANIFEST") or die $!; -@MANIFEST = grep !m, ; -push @MANIFEST, 'lib/Config.pod', 'lib/Errno.pm', 'lib/lib.pm', - 'lib/DynaLoader.pm', 'lib/XSLoader.pm'; - -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; +@files = grep m#(?:\.pm|\.pod|_pm\.PL)#, map {s/\s.*//s; $_} + grep {m#^lib# || m#^ext#} grep !m#/(?:t|demo)/#, ; + +my %exceptions = ( + 'abbrev' => 'Text::Abbrev', + 'carp' => 'Carp', + 'getopt' => 'Getopt::Std', + 'B' => 'CGI::Carp', + 'ModuleInfo' => 'Module::Build::ModuleInfo', + '$notes_name' => 'Module::Build::Notes', + 'Encode::MIME::NAME' => 'Encode::MIME::Name', + 'libnetFAQ' => 'Net::libnetFAQ', +); + +for my $filename (@files) { + unless (open MOD, '<', "../$filename") { + warn "Couldn't open ../$filename: $!"; + next; + } + + my ($name, $thing); + my $foundit = 0; + { + local $/ = ""; + while () { + next unless /^=head1 NAME/; + $foundit++; + last; } - $filename = $origfilename; - } - - - my ($name, $thing); - my $foundit=0; - { - local $/=""; - while () { - next unless /^=head1 NAME/; - $foundit++; - last; - } - } - unless ($foundit) { - warn "$filename missing =head1 NAME (okay if there is respective .pod)\n"; - next; - } - my $title = ; - 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; - - ($name, $thing) = split / --? /, $title, 2; - - unless ($name and $thing) { - warn "$filename missing name\n" unless $name; - warn "$filename missing thing\n" unless $thing; - next; - } - - - $thing =~ s/^perl pragma to //i; - $thing = ucfirst($thing); - $title = "=item $perlname\n\n$thing\n\n"; - - if ($filename =~ /[A-Z]/) { - push @mod, $title; - } else { - push @pragma, $title; - } + } + unless ($foundit) { + warn "$filename missing =head1 NAME (OK if respective .pod exists)\n" + unless $Quiet; + next; + } + my $title = ; + chomp $title; + close MOD; + + ($name, $thing) = split / --? /, $title, 2; + + unless ($name and $thing) { + warn "$filename missing name\n" unless $name; + warn "$filename missing thing\n" unless $thing or $Quiet; + next; + } + + $name =~ s/[^A-Za-z0-9_:\$<>].*//; + $name = $exceptions{$name} || $name; + $thing =~ s/^perl pragma to //i; + $thing = ucfirst $thing; + $title = "=item $name\n\n$thing\n\n"; + + if ($name =~ /[A-Z]/) { + push @mod, $title; + } else { + push @pragma, $title; + } } +# Much easier to special case it like this than special case the depending on +# and parsing lib/Config.pod, or special case opening configpm and finding its +# =head1 (which is not found with the $/="" above) +push @mod, <<'CONFIG'; +=item Config + +Access Perl configuration information + +CONFIG + print OUT <<'EOF'; =for maintainers Generated by perlmodlib.PL -- DO NOT EDIT! @@ -282,7 +300,7 @@ Miscellaneous Modules =back -The list of the registered CPAN sites as of this writing follows. +The list of the registered CPAN sites follows. Please note that the sorting order is alphabetical on fields: Continent @@ -298,7 +316,7 @@ Continent 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. +Registered CPAN sites =head2 Africa @@ -306,11 +324,11 @@ You should try to choose one close to you. =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/ + http://cpan.mirror.ac.za/ + ftp://cpan.mirror.ac.za/ + http://mirror.is.co.za/pub/cpan/ + ftp://ftp.is.co.za/pub/cpan/ ftp://ftp.saix.net/pub/CPAN/ - ftp://ftp.sun.ac.za/CPAN/CPAN/ =back @@ -318,83 +336,97 @@ You should try to choose one close to you. =over 4 -=item China +=item Hong Kong - http://cpan.linuxforum.net/ - http://cpan.shellhung.org/ - ftp://ftp.shellhung.org/pub/CPAN - ftp://mirrors.hknet.com/CPAN + http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/ + ftp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/ + http://mirrors.geoexpat.com/cpan/ -=item Indonesia +=item India - http://mirrors.tf.itb.ac.id/cpan/ - http://cpan.cbn.net.id/ - ftp://ftp.cbn.net.id/mirror/CPAN + http://perlmirror.indialinks.com/ -=item Israel +=item Indonesia - 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/ + http://cpan.biz.net.id/ + http://komo.vlsm.org/CPAN/ + ftp://komo.vlsm.org/CPAN/ + http://cpan.pesat.net.id/ + http://mirror.unej.ac.id/cpan/ + ftp://mirror.unej.ac.id/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.kddilabs.jp/CPAN/ + http://ftp.nara.wide.ad.jp/pub/CPAN/ + ftp://ftp.nara.wide.ad.jp/pub/CPAN/ + http://ftp.jaist.ac.jp/pub/CPAN/ + ftp://ftp.jaist.ac.jp/pub/CPAN/ ftp://ftp.dti.ad.jp/pub/lang/CPAN/ ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/ + http://ftp.riken.jp/lang/CPAN/ + ftp://ftp.riken.jp/lang/CPAN/ + http://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/ + ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/ -=item Malaysia +=item Kazakhstan - http://cpan.MyBSD.org.my - http://mirror.leafbug.org/pub/CPAN - http://ossig.mncc.com.my/mirror/pub/CPAN + http://mirror.linuxiso.kz/CPAN/ -=item Russian Federation +=item Republic of Korea - http://cpan.tomsk.ru - ftp://cpan.tomsk.ru/ + http://ftp.kaist.ac.kr/pub/CPAN + ftp://ftp.kaist.ac.kr/pub/CPAN + http://cpan.mirror.cdnetworks.com/ + ftp://cpan.mirror.cdnetworks.com/CPAN/ + http://cpan.sarang.net/ + ftp://cpan.sarang.net/CPAN/ -=item Saudi Arabia +=item Russia - ftp://ftp.isu.net.sa/pub/CPAN/ + http://cpan.tomsk.ru/ + ftp://cpan.tomsk.ru/ =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.mirror.choon.net/ 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://ftp.cse.yzu.edu.tw/pub/CPAN/ + ftp://ftp.cse.yzu.edu.tw/pub/CPAN/ + http://cpan.nctu.edu.tw/ + ftp://cpan.nctu.edu.tw/ + ftp://ftp.ncu.edu.tw/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/ + ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/ + http://cpan.stu.edu.tw + ftp://ftp.stu.edu.tw/CPAN + http://ftp.stu.edu.tw/CPAN + ftp://ftp.stu.edu.tw/pub/CPAN + http://cpan.cs.pu.edu.tw/ + ftp://cpan.cs.pu.edu.tw/pub/CPAN =item Thailand - ftp://ftp.loxinfo.co.th/pub/cpan/ - ftp://ftp.cs.riubon.ac.th/pub/mirrors/CPAN/ + http://mirrors.issp.co.th/cpan/ + ftp://mirrors.issp.co.th/cpan/ + +=item Turkey + + http://cpan.gazi.edu.tr/ + http://cpan.ulak.net.tr + ftp://ftp.ulak.net.tr/pub/CPAN + +=item Viet Nam + + http://mirror-fpt-telecom.fpt.net/cpan/ + ftp://mirror-fpt-telecom.fpt.net/cpan/ =back @@ -404,8 +436,8 @@ You should try to choose one close to you. =item Costa Rica - http://ftp.ucr.ac.cr/Unix/CPAN/ - ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/ + http://mirrors.ucr.ac.cr/CPAN/ + ftp://mirrors.ucr.ac.cr/CPAN/ =back @@ -417,15 +449,16 @@ You should try to choose one close to you. http://cpan.inode.at/ ftp://cpan.inode.at - ftp://ftp.tuwien.ac.at/pub/CPAN/ + http://gd.tuwien.ac.at/languages/perl/CPAN/ + ftp://gd.tuwien.ac.at/pub/CPAN/ =item Belgium + http://ftp.belnet.be/mirror/ftp.cpan.org/ + ftp://ftp.belnet.be/mirror/ftp.cpan.org/ 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/ + http://cpan.weepee.org/ + http://cpan.fluoline.net/ =item Bosnia and Herzegovina @@ -433,34 +466,27 @@ You should try to choose one close to you. =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 + http://cpan.cbox.biz/ + ftp://cpan.cbox.biz/cpan/ + http://cpan.digsys.bg/ + ftp://ftp.digsys.bg/pub/CPAN =item Croatia - http://ftp.linux.hr/pub/CPAN/ - ftp://ftp.linux.hr/pub/CPAN/ + http://ftp.carnet.hr/pub/CPAN/ + ftp://ftp.carnet.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/ + http://archive.cpan.cz/ =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/ + http://mirrors.dotsrc.org/cpan + ftp://mirrors.dotsrc.org/cpan/ + http://www.cpan.dk/ + http://mirror.uni-c.dk/pub/CPAN/ =item Finland @@ -469,37 +495,53 @@ You should try to choose one close to you. =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/ + http://cpan.enstimac.fr/ + ftp://ftp.inria.fr/pub/CPAN/ + http://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/ + ftp://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/ 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://cpan.miroir-francais.fr/ + ftp://miroir-francais.fr/pub/cpan/ + ftp://ftp.oleane.net/pub/CPAN/ 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 + http://cpan.cict.fr/ ftp://cpan.cict.fr/pub/CPAN/ - ftp://ftp.uvsq.fr/pub/perl/CPAN/ =item Germany + ftp://ftp.fu-berlin.de/unix/languages/perl/ + http://mirrors.softliste.de/cpan/ ftp://ftp.rub.de/pub/CPAN/ + http://www.planet-elektronik.de/CPAN/ + http://ftp.hosteurope.de/pub/CPAN/ + ftp://ftp.hosteurope.de/pub/CPAN/ + http://www.mirrorspace.org/cpan/ + http://mirror.netcologne.de/cpan/ + ftp://mirror.netcologne.de/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-stud.hs-esslingen.de/pub/Mirrors/CPAN/ + ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/CPAN/ + http://mirrors.zerg.biz/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://dl.ambiweb.de/mirrors/ftp.cpan.org/ + http://cpan.mirror.clusters.kg/ + http://cpan.mirror.iphh.net/ + ftp://cpan.mirror.iphh.net/pub/CPAN/ + http://cpan.mirroring.de/ + http://mirror.informatik.uni-mannheim.de/pub/mirrors/CPAN/ + ftp://mirror.informatik.uni-mannheim.de/pub/mirrors/CPAN/ + http://ftp.cw.net/pub/CPAN/ + ftp://ftp.cw.net/pub/CPAN/ + http://cpan.cpantesters.org/ + ftp://cpan.cpantesters.org/CPAN/ + http://cpan.mirrored.de/ + ftp://mirror.petamem.com/CPAN/ http://cpan.noris.de/ ftp://cpan.noris.de/pub/CPAN/ ftp://ftp.mpi-sb.mpg.de/pub/perl/CPAN/ @@ -507,14 +549,16 @@ You should try to choose one close to you. =item Greece - ftp://ftp.acn.gr/pub/lang/perl ftp://ftp.forthnet.gr/pub/languages/perl/CPAN ftp://ftp.ntua.gr/pub/lang/perl/ + http://cpan.cc.uoc.gr/ + ftp://ftp.cc.uoc.gr/mirrors/CPAN/ =item Hungary - http://ftp.kfki.hu/packages/perl/CPAN/ - ftp://ftp.kfki.hu/pub/packages/perl/CPAN/ + http://cpan.mirrors.enexis.hu/ + ftp://cpan.mirrors.enexis.hu/mirrors/cpan/ + http://cpan.hu/ =item Iceland @@ -523,26 +567,17 @@ You should try to choose one close to you. =item Ireland - http://cpan.indigo.ie/ - ftp://cpan.indigo.ie/pub/CPAN/ + http://ftp.esat.net/pub/languages/perl/CPAN/ + ftp://ftp.esat.net/pub/languages/perl/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/ + http://bo.mirror.garr.it/mirrors/CPAN/ + http://cpan.panu.it/ + ftp://ftp.panu.it/pub/mirrors/perl/CPAN/ + http://cpan.fastbull.org/ =item Latvia @@ -550,21 +585,31 @@ You should try to choose one close to you. =item Lithuania - ftp://ftp.unix.lt/pub/CPAN/ + http://ftp.litnet.lt/pub/CPAN/ + ftp://ftp.litnet.lt/pub/CPAN/ + +=item Malta + + http://cpan.waldonet.net.mt/ =item Netherlands + ftp://ftp.quicknet.nl/pub/CPAN/ + http://mirror.hostfuss.com/CPAN/ + ftp://mirror.hostfuss.com/CPAN/ + http://mirrors3.kernel.org/cpan/ + ftp://mirrors3.kernel.org/pub/CPAN/ + http://cpan.osmirror.nl/ + ftp://ftp.osmirror.nl/pub/cpan/ + http://cpan.mirror.versatel.nl/ + ftp://ftp.mirror.versatel.nl/cpan/ 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/ + http://mirror.leaseweb.com/CPAN/ + ftp://mirror.leaseweb.com/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/ + http://https://luxitude.net/cpan/ =item Norway @@ -573,110 +618,113 @@ You should try to choose one close to you. =item Poland - ftp://ftp.mega.net.pl/CPAN - ftp://ftp.man.torun.pl/pub/doc/CPAN/ + http://mirror.icis.pcz.pl/CPAN/ + ftp://mirror.icis.pcz.pl/CPAN/ + http://piotrkosoft.net/pub/mirrors/CPAN/ + ftp://ftp.piotrkosoft.net/pub/mirrors/CPAN/ + http://ftp.man.poznan.pl/pub/CPAN + ftp://ftp.man.poznan.pl/pub/CPAN ftp://sunsite.icm.edu.pl/pub/CPAN/ + ftp://ftp.tpnet.pl/d4/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 + ftp://ftp.ist.utl.pt/pub/CPAN/ + http://cpan.perl.pt/ http://cpan.ip.pt/ ftp://cpan.ip.pt/pub/cpan/ - http://cpan.telepac.pt/ - ftp://ftp.telepac.pt/pub/cpan/ + http://mirrors.nfsi.pt/CPAN/ + ftp://mirrors.nfsi.pt/pub/CPAN/ + http://cpan.dcc.fc.up.pt/ =item Romania - ftp://ftp.bio-net.ro/pub/CPAN - ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/ + http://ftp.astral.ro/pub/CPAN/ + ftp://ftp.astral.ro/pub/CPAN/ ftp://ftp.lug.ro/CPAN - ftp://ftp.roedu.net/pub/CPAN/ - ftp://ftp.dntis.ro/pub/cpan/ + http://mirrors.xservers.ro/CPAN/ + http://mirrors.hostingromania.ro/ftp.cpan.org/ + ftp://ftp.hostingromania.ro/mirrors/ftp.cpan.org/ 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/ + ftp://ftp.aha.ru/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/ + ftp://ftp.SpringDaemons.com/pub/CPAN/ + http://cpan.nx1.ru/ + ftp://cpan.nx1.ru/ + http://mirror.rol.ru/CPAN/ + http://ftp.silvernet.ru/CPAN/ + http://ftp.spbu.ru/CPAN/ + ftp://ftp.spbu.ru/CPAN/ =item Slovakia - ftp://ftp.cvt.stuba.sk/pub/CPAN/ + http://cpan.fyxm.net/ =item Slovenia - ftp://ftp.arnes.si/software/perl/CPAN/ + http://www.klevze.si/cpan =item Spain - http://cpan.imasd.elmundo.es/ + http://osl.ugr.es/CPAN/ ftp://ftp.rediris.es/mirror/CPAN/ - ftp://ftp.ri.telefonica-data.net/CPAN - ftp://ftp.etse.urv.es/pub/perl/ + http://ftp.gui.uva.es/sites/cpan.org/ + ftp://ftp.gui.uva.es/sites/cpan.org/ =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/ + http://mirrors4.kernel.org/cpan/ + ftp://mirrors4.kernel.org/pub/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/ + http://mirror.switch.ch/ftp/mirror/CPAN/ + ftp://mirror.switch.ch/mirror/CPAN/ =item Ukraine + http://cpan.makeperl.org/ + ftp://cpan.makeperl.org/pub/CPAN 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/ + http://cpan.gafol.net/ + ftp://ftp.gafol.net/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://www.mirrorservice.org/sites/ftp.funet.fi/pub/languages/perl/CPAN/ + ftp://ftp.mirrorservice.org/sites/ftp.funet.fi/pub/languages/perl/CPAN/ + http://mirror.tje.me.uk/pub/mirrors/ftp.cpan.org/ + ftp://mirror.tje.me.uk/pub/mirrors/ftp.cpan.org/ + http://www.mirror.8086.net/sites/CPAN/ + ftp://ftp.mirror.8086.net/sites/CPAN/ http://cpan.mirror.anlx.net/ ftp://ftp.mirror.anlx.net/CPAN/ + http://mirror.bytemark.co.uk/CPAN/ + ftp://mirror.bytemark.co.uk/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/ + http://mirror.sov.uk.goscomb.net/CPAN/ + ftp://mirror.sov.uk.goscomb.net/pub/CPAN/ + http://ftp.plig.net/pub/CPAN/ + ftp://ftp.plig.net/pub/CPAN/ + http://ftp.ticklers.org/pub/CPAN/ + ftp://ftp.ticklers.org/pub/CPAN/ + http://cpan.mirrors.uk2.net/ + ftp://mirrors.uk2.net/pub/CPAN/ + http://mirror.ox.ac.uk/sites/www.cpan.org/ + ftp://mirror.ox.ac.uk/sites/www.cpan.org/ =back @@ -684,36 +732,30 @@ You should try to choose one close to you. =over 4 -=item Canada +=item Bahamas -=over 8 + http://www.securehost.com/mirror/CPAN/ -=item Alberta +=item Canada + http://cpan.justanotherperlhacker.com/pub/CPAN/ + ftp://cpan.justanotherperlhacker.com/pub/CPAN/ + http://cpan.arcticnetwork.ca + ftp://mirror.arcticnetwork.ca/pub/CPAN 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 - + http://arwen.cs.dal.ca/mirror/CPAN/ + ftp://arwen.cs.dal.ca/pub/mirror/CPAN/ + http://CPAN.mirror.rafal.ca/ + ftp://CPAN.mirror.rafal.ca/pub/CPAN/ ftp://ftp.nrc.ca/pub/CPAN/ - -=back + http://mirror.csclub.uwaterloo.ca/pub/CPAN/ + ftp://mirror.csclub.uwaterloo.ca/pub/CPAN/ =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/ @@ -728,161 +770,145 @@ You should try to choose one close to you. =item California + http://cpan.knowledgematters.net/ + http://cpan.binkerton.com/ 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://cpan.schatt.com/ http://mirrors.kernel.org/cpan/ ftp://mirrors.kernel.org/pub/CPAN + http://mirrors2.kernel.org/cpan/ + ftp://mirrors2.kernel.org/pub/CPAN/ + http://cpan.mirrors.redwire.net/ + http://cpan.mirror.facebook.net/ + http://mirrors1.kernel.org/cpan/ + ftp://mirrors1.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 + http://cpan.yahoo.com/ -=item Colorado - - ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ - http://cpan.four10.com +=item Florida -=item Delaware + ftp://ftp.cise.ufl.edu/pub/mirrors/CPAN/ + http://mirror.atlantic.net/pub/CPAN/ + ftp://mirror.atlantic.net/pub/CPAN/ + http://mirror.candidhosting.com/pub/CPAN + ftp://mirror.candidhosting.com/pub/CPAN - http://ftp.lug.udel.edu/pub/CPAN - ftp://ftp.lug.udel.edu/pub/CPAN +=item Idaho -=item District of Columbia + http://mirror.its.uidaho.edu/pub/cpan/ + ftp://mirror.its.uidaho.edu/cpan/ - ftp://ftp.dc.aleron.net/pub/CPAN/ +=item Illinois -=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/ + http://cpan.mirrors.hoobly.com/ + http://cpan.uchicago.edu/pub/CPAN/ + ftp://cpan.uchicago.edu/pub/CPAN/ + http://mirrors.servercentral.net/CPAN/ + http://www.stathy.com/CPAN/ + ftp://www.stathy.com/CPAN/ =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://ftp.ndlug.nd.edu/pub/perl/ + ftp://ftp.ndlug.nd.edu/pub/perl/ 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 + http://ftp.wayne.edu/cpan/ + ftp://ftp.wayne.edu/cpan/ -=item Nevada +=item Minnesota - http://www.oss.redundant.com/pub/CPAN - ftp://www.oss.redundant.com/pub/CPAN + http://cpan.msi.umn.edu/ =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 + http://mirror.datapipe.net/CPAN/ + ftp://mirror.datapipe.net/pub/CPAN/ =item New York + http://mirrors.24-7-solutions.net/pub/CPAN/ + ftp://mirrors.24-7-solutions.net/pub/CPAN/ + http://mirror.cc.columbia.edu/pub/software/cpan/ + ftp://mirror.cc.columbia.edu/pub/software/cpan/ 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/ + ftp://cpan.erlbaum.net/CPAN/ + http://cpan.hexten.net/ + ftp://cpan.hexten.net/ + http://ftp.fxcorporate.com/CPAN/ + ftp://ftp.fxcorporate.com/pub/CPAN/ + ftp://mirror.nyi.net/CPAN/ + http://mirror.rit.edu/CPAN/ + ftp://mirror.rit.edu/CPAN/ =item North Carolina - http://www.ibiblio.org/pub/languages/perl/CPAN - ftp://ftp.ibiblio.org/pub/languages/perl/CPAN - ftp://ftp.duke.edu/pub/perl/ + http://www.ibiblio.org/pub/mirrors/CPAN ftp://ftp.ncsu.edu/pub/mirror/CPAN/ -=item Oklahoma - - ftp://ftp.ou.edu/mirrors/CPAN/ - =item Oregon - ftp://ftp.orst.edu/pub/CPAN + http://ftp.osuosl.org/pub/CPAN/ + ftp://ftp.osuosl.org/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 South Carolina + + http://cpan.mirror.clemson.edu/ =item Tennessee - ftp://ftp.sunsite.utk.edu/pub/CPAN/ + http://mira.sunsite.utk.edu/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 + http://mirror.uta.edu/CPAN =item Utah + http://cpan.cs.utah.edu + ftp://cpan.cs.utah.edu/pub/CPAN/ 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/ + ftp://mirror.cogentco.com/pub/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://cpan.mirrors.tds.net + ftp://cpan.mirrors.tds.net/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 =back @@ -894,20 +920,19 @@ You should try to choose one close to you. =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 + http://mirror.internode.on.net/pub/cpan/ + ftp://mirror.internode.on.net/pub/cpan/ + http://cpan.mirror.aussiehq.net.au/ + http://mirror.as24220.net/cpan/ + ftp://mirror.as24220.net/cpan/ =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/ + http://cpan.inspire.net.nz + ftp://cpan.inspire.net.nz/cpan + http://cpan.catalyst.net.nz/CPAN/ + ftp://cpan.catalyst.net.nz/pub/CPAN/ =back @@ -917,65 +942,105 @@ You should try to choose one close to you. =item Argentina - ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/ - http://www.linux.org.ar/mirrors/cpan - ftp://ftp.linux.org.ar/mirrors/cpan + http://cpan.patan.com.ar/ + http://cpan.localhost.net.ar + ftp://mirrors.localhost.net.ar/pub/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/ + http://ftp.pucpr.br/CPAN + ftp://ftp.pucpr.br/CPAN + http://cpan.kinghost.net/ + ftp://ftp.linorg.usp.br/CPAN =item Chile - http://cpan.netglobalis.net/ - ftp://cpan.netglobalis.net/pub/CPAN/ + http://cpan.dcc.uchile.cl/ + ftp://cpan.dcc.uchile.cl/pub/lang/cpan/ + +=item Colombia + + http://www.laqee.unal.edu.co/CPAN/ =back =head2 RSYNC Mirrors - www.linux.org.ar::cpan + mirror.as24220.net::cpan + cpan.inode.at::CPAN + gd.tuwien.ac.at::CPAN + ftp.belnet.be::packages/cpan + rsync.linorg.usp.br::CPAN + rsync.arcticnetwork.ca::CPAN + CPAN.mirror.rafal.ca::CPAN + mirror.csclub.uwaterloo.ca::CPAN theoryx5.uwinnipeg.ca::CPAN - ftp.shellhung.org::CPAN + www.laqee.unal.edu.co::CPAN + mirror.uni-c.dk::CPAN rsync.nic.funet.fi::CPAN - ftp.u-paris10.fr::CPAN + rsync://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/ mir1.ovh.net::CPAN - rsync://ftp.crihan.fr::CPAN + miroir-francais.fr::cpan + ftp.crihan.fr::CPAN + rsync://mirror.cict.fr/cpan/ + rsync://mirror.netcologne.de/cpan/ + ftp-stud.hs-esslingen.de::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 + cpan.mirror.iphh.net::CPAN + cpan.cpantesters.org::cpan + cpan.hu::CPAN + komo.vlsm.org::CPAN + mirror.unej.ac.id::cpan + ftp.esat.net::/pub/languages/perl/CPAN + ftp.heanet.ie::mirrors/ftp.perl.org/pub/CPAN + rsync.panu.it::CPAN + cpan.fastbull.org::CPAN + ftp.kddilabs.jp::cpan + ftp.nara.wide.ad.jp::cpan/ + rsync://ftp.jaist.ac.jp/pub/CPAN/ + rsync://ftp.riken.jp/cpan/ + mirror.linuxiso.kz::CPAN + rsync://mirrors3.kernel.org/mirrors/CPAN/ + rsync://rsync.osmirror.nl/cpan/ + mirror.leaseweb.com::CPAN + cpan.nautile.nc::CPAN + mirror.icis.pcz.pl::CPAN + piotrkosoft.net::mirrors/CPAN + rsync://cpan.perl.pt/ + ftp.kaist.ac.kr::cpan + cpan.sarang.net::CPAN mirror.averse.net::cpan rsync.oss.eznetsols.org - ftp.kr.FreeBSD.org::CPAN + mirror.ac.za::cpan + ftp.is.co.za::IS-Mirror/ftp.cpan.org/ + rsync://ftp.gui.uva.es/cpan/ + rsync://mirrors4.kernel.org/mirrors/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 + ftp.ulak.net.tr::CPAN + gafol.net::cpan + rsync.mirrorservice.org::ftp.funet.fi/pub/ + rsync://rsync.mirror.8086.net/CPAN/ + rsync.mirror.anlx.net::CPAN + mirror.bytemark.co.uk::CPAN + ftp.plig.net::CPAN + rsync://ftp.ticklers.org:CPAN/ + mirrors.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 + mirror.hiwaay.net::CPAN + rsync://mira.sunsite.utk.edu/CPAN/ + cpan.mirrors.tds.net::CPAN + mirror.its.uidaho.edu::cpan + rsync://mirror.cc.columbia.edu::cpan/ + ftp.fxcorporate.com::CPAN + rsync.atlantic.net::CPAN mirrors.kernel.org::mirrors/CPAN - mirrors.phenominet.com::CPAN + rsync://mirrors2.kernel.org/mirrors/CPAN/ cpan.pair.com::CPAN + rsync://mirror.rit.edu/CPAN/ + rsync://mirror.facebook.net/cpan/ + rsync://mirrors1.kernel.org/mirrors/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 . @@ -1070,8 +1135,8 @@ the module after __END__ either using AutoSplit or by saying: 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 @@ -1324,7 +1389,7 @@ Follow the instructions and links on: or upload to one of these sites: https://pause.kbx.de/pause/ - http://pause.perl.org/pause/ + http://pause.perl.org/ and notify . @@ -1344,8 +1409,6 @@ old behavior if people rely on it. Document incompatible changes. =back -=back - =head2 Guidelines for Converting Perl 4 Library Scripts into Modules =over 4 @@ -1444,6 +1507,8 @@ or =back +=back + =head1 NOTE Perl does not enforce private and public parts of its modules as you may