X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlmodlib.PL;h=effe9a3c5c39139ddd5c36c52e47a6727e6e1408;hb=a22f28a4268aa03ce2bafaf594271b8ff764a5f8;hp=1dd79180bc9389d0710dd3c6323cc90fc6897168;hpb=8518420c882d2b1d0bccc0e82ac9d461257ad5cf;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlmodlib.PL b/pod/perlmodlib.PL index 1dd7918..effe9a3 100644 --- a/pod/perlmodlib.PL +++ b/pod/perlmodlib.PL @@ -1,74 +1,92 @@ #!../miniperl +use strict; +use warnings; + $ENV{LC_ALL} = 'C'; -open (OUT, ">perlmodlib.tmp") or die $!; -my (@pragma, @mod, @MANIFEST); +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, @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! @@ -147,9 +165,12 @@ print OUT <<'EOF'; To find out I 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 -Te '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 @@ -279,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 @@ -295,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 @@ -303,10 +324,11 @@ You should try to choose one close to you. =item South Africa - ftp://ftp.is.co.za/programming/perl/CPAN/ - ftp://ftp.mweb.co.za/pub/mirrors/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 @@ -314,93 +336,97 @@ You should try to choose one close to you. =over 4 -=item China +=item Hong Kong - 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 + http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/ + ftp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/ + http://mirrors.geoexpat.com/cpan/ =item India - http://cpan.in.freeos.com - ftp://cpan.in.freeos.com/pub/CPAN/ + http://perlmirror.indialinks.com/ =item Indonesia - http://cpan.itb.web.id/ - ftp://mirrors.piksi.itb.ac.id/CPAN/ - http://cpan.cbn.net.id/ - ftp://ftp.cbn.net.id/mirror/CPAN - http://CPAN.mweb.co.id/ - ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/ - -=item Israel - - 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/ + 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/ - 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.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 Korea - - http://mirror.Mazic.org/pub/CPAN - ftp://mirror.Mazic.org/pub/CPAN +=item Kazakhstan -=item Philippines + http://mirror.linuxiso.kz/CPAN/ - http://www.adzu.edu.ph/CPAN +=item Republic of Korea -=item Russian Federation + 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/ - http://cpan.tomsk.ru - ftp://cpan.tomsk.ru/pub/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.hjc.edu.sg http://mirror.averse.net/pub/CPAN ftp://mirror.averse.net/pub/CPAN - -=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 + http://cpan.mirror.choon.net/ + http://cpan.oss.eznetsols.org + ftp://ftp.oss.eznetsols.org/cpan =item Taiwan - ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN - 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/ + 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/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 @@ -410,9 +436,8 @@ You should try to choose one close to you. =item 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://mirrors.ucr.ac.cr/CPAN/ + ftp://mirrors.ucr.ac.cr/CPAN/ =back @@ -422,80 +447,101 @@ You should try to choose one close to you. =item Austria - ftp://ftp.tuwien.ac.at/pub/CPAN/ + http://cpan.inode.at/ + ftp://cpan.inode.at + 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.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 + + http://cpan.blic.net/ =item Bulgaria - 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 - 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/ + 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 ftp://ftp.funet.fi/pub/languages/perl/CPAN/ - http://cpan.kpnqwest.fi/ + http://mirror.eunet.fi/CPAN =item France - 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.rz.ruhr-uni-bochum.de/pub/CPAN/ + 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/ @@ -503,16 +549,16 @@ You should try to choose one close to you. =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/ + http://cpan.cc.uoc.gr/ + ftp://ftp.cc.uoc.gr/mirrors/CPAN/ =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/ + http://cpan.mirrors.enexis.hu/ + ftp://cpan.mirrors.enexis.hu/mirrors/cpan/ + http://cpan.hu/ =item Iceland @@ -521,23 +567,17 @@ You should try to choose one close to you. =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/ + 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 =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/ + 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 @@ -545,20 +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 + 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 @@ -567,95 +618,113 @@ You should try to choose one close to you. =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/ + 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.ist.utl.pt/pub/CPAN/ + http://cpan.perl.pt/ http://cpan.ip.pt/ ftp://cpan.ip.pt/pub/cpan/ - ftp://ftp.netc.pt/pub/CPAN/ - ftp://ftp.up.pt/pub/CPAN + http://mirrors.nfsi.pt/CPAN/ + ftp://mirrors.nfsi.pt/pub/CPAN/ + http://cpan.dcc.fc.up.pt/ =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/ + http://ftp.astral.ro/pub/CPAN/ + ftp://ftp.astral.ro/pub/CPAN/ + ftp://ftp.lug.ro/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/ + ftp://ftp.ambra.ro/pub/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/ - 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 - http://ftp.cvt.stuba.sk/pub/CPAN/ - 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.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/ - 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 - 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://cpan.mirror.solnet.ch/ + ftp://ftp.solnet.ch/mirror/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://cpan.crazygreek.co.uk + 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://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/ + 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 @@ -663,42 +732,36 @@ You should try to choose one close to you. =over 4 -=item Alberta +=item Bahamas - http://sunsite.ualberta.ca/pub/Mirror/CPAN/ - ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/ + http://www.securehost.com/mirror/CPAN/ -=item Manitoba +=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/ 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.crc.ca/pub/CPAN/ - -=item Quebec - - http://cpan.mirror.smartworker.org/ + 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/ + 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://cpan.unam.mx/ - ftp://cpan.unam.mx/pub/CPAN http://www.msg.com.mx/CPAN/ ftp://ftp.msg.com.mx/pub/CPAN/ -=back - -=head2 United States +=item United States -=over 4 +=over 8 =item Alabama @@ -707,166 +770,169 @@ 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://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://cpan.digisle.net/ - ftp://cpan.digisle.net/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://www.perl.com/CPAN/ - http://download.sourceforge.net/mirrors/CPAN/ - -=item Colorado - - ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ - -=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/ + http://cpan.yahoo.com/ =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://mirror.atlantic.net/pub/CPAN/ + ftp://mirror.atlantic.net/pub/CPAN/ + http://mirror.candidhosting.com/pub/CPAN + ftp://mirror.candidhosting.com/pub/CPAN + +=item Idaho + + http://mirror.its.uidaho.edu/pub/cpan/ + ftp://mirror.its.uidaho.edu/cpan/ =item Illinois - http://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/ - ftp://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/ + 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/ - 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/ + http://ftp.ndlug.nd.edu/pub/perl/ + ftp://ftp.ndlug.nd.edu/pub/perl/ + http://fx.saintjoe.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/ + http://ftp.wayne.edu/cpan/ + ftp://ftp.wayne.edu/cpan/ + +=item Minnesota + + http://cpan.msi.umn.edu/ =item New Jersey - 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 - ftp://ftp.exobit.org/pub/perl/CPAN + 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.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://cpan.erlbaum.net/ + 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 - ftp://ftp.duke.edu/pub/perl/ - -=item Ohio - - ftp://ftp.loaded.net/pub/CPAN/ - -=item Oklahoma - - ftp://ftp.ou.edu/mirrors/CPAN/ + http://www.ibiblio.org/pub/mirrors/CPAN + ftp://ftp.ncsu.edu/pub/mirror/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/ - ftp://mirror.telentente.com/pub/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://mirrors.rcn.net/pub/lang/CPAN/ - ftp://mirrors.rcn.net/pub/lang/CPAN/ + http://cpan-du.viaverio.com/ + ftp://cpan-du.viaverio.com/pub/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/ + ftp://mirror.cogentco.com/pub/CPAN/ -=item ashington +=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/ =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://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/ - http://cpan.soa.co.nz/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 @@ -876,49 +942,105 @@ You should try to choose one close to you. =item Argentina - ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/ - http://ftp.fcaglp.unlp.edu.ar/pub/CPAN/ - ftp://ftp.fcaglp.unlp.edu.ar/pub/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://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 - ftp.fcaglp.unlp.edu.ar::CPAN - cpan.mirror.smartworker.org::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 - ftp.funet.fi::CPAN - ftp.u-paris10.fr::CPAN + www.laqee.unal.edu.co::CPAN + mirror.uni-c.dk::CPAN + rsync.nic.funet.fi::CPAN + rsync://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/ mir1.ovh.net::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 - CPAN.piksi.itb.ac.id::CPAN - ftp.cbn.net.id::CPAN - ftp.iglu.org.il::CPAN - gusp.dyndns.org::cpan - ftp.kddlabs.co.jp::cpan - ftp.ayamura.org::pub/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 - cpan.teleglobe.net::CPAN - ftp.sedl.org::cpan - archive.progeny.com::CPAN - cpan.teleglobe.net::CPAN - ftp.lug.udel.edu::cpan + rsync.oss.eznetsols.org + 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 + 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 + 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 - mirror.csit.fsu.edu::CPAN - csociety-ftp.ecn.purdue.edu::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 For an up-to-date listing of CPAN sites, see http://www.cpan.org/SITES or ftp://www.cpan.org/SITES . @@ -1013,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 @@ -1204,9 +1326,10 @@ 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 and L). 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: @@ -1266,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 . @@ -1403,5 +1526,5 @@ you're redefining the world and willing to take the consequences. 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): $!";