The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
# $File: //member/autrijus/Lingua-ZH-Keywords/t/1-basic.t $ $Author: autrijus $
# $Revision: #2 $ $Change: 3699 $ $DateTime: 2003/01/20 14:50:03 $

use strict;
use Test;

BEGIN { plan tests => 2 }

require Lingua::ZH::Keywords;
ok($Lingua::ZH::Keywords::VERSION) if $Lingua::ZH::Keywords::VERSION or 1;

ok(
    join(',', Lingua::ZH::Keywords::keywords(do { local $/; <DATA> }, 10)),
    '¯¸¥x,¼Ò²Õ,¬M®g,»y¨¥,¨t²Î,³nÅé,µ{¦¡,§@ªÌ,¨åÂÃ,¦Û¤v'
);

__DATA__

ºî¦X¨åÂúôªºÁI¹D

¬°¨ä¥L¹q¸£»y¨¥«Ø¥ß¹³ Perl ªº CPAN [1] ³oºØ¨åÂúô¡A¦ü¥G¬O¥ó¼öªùªº¥DÃD¡C§Ú¸Óª¾¹D
ªº¡F´X¦~¨Ó¡A¦Ü¤Ö¦³ Python¡BRuby ¤Î Java ªÀ¸sªº¤H¡A§ä¤W§Ú©Î¨ä¥L CPAN ªº®Ö¤ß¤Hª«
¡A¸ß°Ý¡u§Ú­Ì«ç»ò¿ì¨ìªº¡H¡v³oºØ°ÝÃD¡C³Ìªñ¡A§Úµo²{ Perl ªÀ¸s¸Ì§ó¦³¨Ç¤H¡A·Q­n¥D°Ê
¹ï¨ä¥LªÀ¸s´£¨Ñ¤ä´©¡C§Ú¦b³o«Ê¡u¤½¶}«H¡v¸Ì¸ÕµÛ»¡©ú¦Û¤vªº·Qªk¡A¨ó§U·Q¦Û¦æ¬[³] CAN
¡]ºî¦X¨åÂúô¡^ªºªB¤Í¡C¦]¬°³o«Ê°T®§·|¶Ç¨ì¨ä¥LªÀ¸s¤â¤W¡A§Úªþ¤W¤F Perl ªÀ¸s¡]§Æ±æ
¬O¡^¦­¤w¼ôª¾ªº¦U¶µºô§}¡C§Ú±µ¤U¨Ó±Ô­zªº¬O¹ï Perl ¦³®Äªº±¹¬I¡A½Ð¦Û¦æ½Ķ¦¨¾A¦X¨ä
¥L»y¨¥ªº¿ìªk¡C

        [1] http://www.cpan.org/

§Ú·|¥H­t­±¤f§k¶}©l¡A¦A¥H¸û¬°¥¿­±ªº±Ô­z§@µ²¡F¤£¹L¡A«áªÌ¬O«Ø¿v¦b«e­±ªº§_©w¤Wªº¡C

©³¤U¡AMumble ¤Î mumble ¥Nªí Perl ¤§¥~ªº¬YºØ¨ä¥L»y¨¥¡A©Î¬O¬Y¨Ç¨ä¥L»y¨¥ªº²ÎºÙ¡C

­º¥ý¡A¨Ó¬Ý¬Ý­t­±ªº³¯­z¡G

 ¡E CPAN ¤£¸Ó¡u·f¸ü¡v¥LºØ»y¨¥¡C¡]´«¥y¸Ü»¡¡A¸Ì­±¤£¸Ó¦³ mumble/ ³o­Ó³»¯Å¥Ø¿ý¡C¡^
     ¡¼ ²z¥Ñ¡GCPAN ´N¬O CPAN ´N¬O CPAN¡CCPAN ¯­¸Ë Perl¡C³o¥y¸ÜÄ­§t¤F¦UºØ©ú¥Ü¤Î
        ·t¥Üªº¨óij¡C
     ¡¼ ¦³¨Ç Mumble ªÀ¸s¸Ìªº¤H¡A·|¤Ï¹ï CPAN ·f¸ü Mumble¡C
     ¡¼ ¦³¨Ç Perl ªÀ¸s¸Ìªº¤H¡A·|¤Ï¹ï CPAN ·f¸ü Mumble¡C
     ¡¼ ¬Y¨Ç CPAN ªº¬M®g¯¸¥x¡A·|¤Ï¹ï¬ðµMÁÙ±o·f¸ü Mumble¡C
     ¡¼ ¬Y¨Ç CPAN ªº¬M®g¯¸¥x¡A·|¦]¬°·f¸ü Mumble ¦Ó¾É­P¸ê·½¡]ÀW¼e¡BºÏºÐ¡^¤£¨¬¡C
 ¡E CPAN ¨S¿ìªk¡u·f¸ü¡v¥LºØ»y¨¥¡C
     ¡¼ CPAN ªº°ò¦«Ø³]¡B¤º³¡ºÞ½u¡]°ò¥»ªº¥Ø¿ýµ²ºc¡BPAUSE¡^¬Û·í¾A¦X Perl¡C§Ú¤£¤Ó
        ½T©w¥¦¾A¦X¨ä¥L¦UºØ»y¨¥¡C

±µ¤U¨Ó¡A¬O§Æ±æ¤ñ¸û¨ã«Ø³]©Êªº«Øij¡G

­º¥ý­n»¡ªº¬O¡Ð¡Ð§Ú¤£¤Ï¹ï¨ä¥L»y¨¥¦³¦Û¤vªº CPAN¡A¨Ã¥B·|¤Q¤À°ª¿³¡C§Ú¤]Ä@·N¨ó§U¨ä¥L
»y¨¥ªºªÀ¸s¡C§Ú¤Ï¹ïªº¡A¯­¬O¤Ó¹L²¤Æªº¡u§â¥¦¥á¨ì CPAN ®ÇÃä´N¦æ¤F¡v³oºØ¸Ñªk¡C¨ä¥L
»y¨¥¸ò Perl ¤£¦P¡A¦U¦Û¦³©Î¦h©Î¤Öªº®t²§¡CÅý§Ú­Ì®e³\³o¨Ç»y¨¥¦³¦U¦Ûªº´LÄY¡A¥H¤Î²`
«ä¼ô¼{¹Lªº¸Ñ¨M¤è®×§a¡C

±µµÛ­n¦^µªªº¬O§Þ³N°ÝÃD¡A¤]´N¬O¡u§A­Ì«ç»ò¿ì¨ìªº¡H¡v¡C¶â¡A¦³¤H³o¼Ë°Ýªº®É­Ô¡A§Ú³q
±`¬O°×¤fµL¨¥¡G¡u§c... ­ø¡A§Ú´N¬O§â³o¨ÇªF¦è¦¬¶°°_¨Ó¡A¾ã²z¤@¤U¡AµM«á¥á¨ì¤@¥x FTP
¦øªA¾¹¤W¡C¡v¤§«á¹L¤F¤@·|¡AÁ`¬O¦³¤H¶}¤f¡G¡uµM«á©O¡H¡v¡u¤°»òµM«á¡H¡v¡u´N³o¼Ë¡H¡v
¡u´N³o¼Ë¡C¡v

CPAN ªº²Õ¦¨¤¸¥ó

·íµM¡A¤£¯­¬O³o¼Ë¦Ó¤w¡C¤W­±»¡ªº¬O CPAN ªº½Ï¥Í¡C¥¦ªº¦¨ªø«h¬O¥t¤@­Ó¬G¨Æ¡G­º¥ý¡A
Larry ±N Perl ³]­p¦¨¨ã¦³¼Ò²Õ¡]¤]´N¬O©R¦WªÅ¶¡¡^ªºÂX¥R¥\¯à¡C±µ¤U¨Ó¡A¦³´X¦ì´¼ªÌ¡]
¦p Tim Bunce¡^³W¹º¤F©R¦W¤è¦¡ªº¨}¦n³W½d¡C³Ì«á¡AAndreas Koenig ¿W¤O¼¶¼g¤F PAUSE
[2]¡A´£¨Ñ¤W¸ü¼Ò²Õªº¾÷¨î¡AÅý Perl ¼Ò²Õªº§@ªÌ¯àµù¥U¡B°e¥X¡BºÞ²z¦Û¤vªº§@«~¡C³o¾É­P
¤F¨³³t¦Ó¦³¯´§Çªº¦¨ªø¡C

        [2] http://pause.perl.org/
        ¡]©Î¬O https://pause.perl.org/¡^

¦w¸Ë¼Ò²Õ¨Ã¤£®e©ö¡A¤×¨ä¬O»Ý­n¾ô±µ C »y¨¥©Î¥~³¡µ{¦¡®w®É¡C¬°¦¹¡AAndreas ©M¤@¨ÇªB¤Í
¦X¤O¼g¦¨¤F«eºÝ»P«áºÝ¨â¥÷µ{¦¡¡G«eºÝ¦W¬° CPAN (shell) [3]¡A«áºÝ«h¬O MakeMaker [4]
¡CShell¡]¤SºÙ¬° CPAN.pm¡^­t³d¤U¸ü¤¸¥ó¡F«áºÝ«h«Ø¥ß©Ò»Ýªº Makefile¡]©ÎÃþ¦üªº«Ø¸m
¤u¨ã±±¨îÀÉ¡^¡A¨Ã©I¥s¬ÛÀ³ªº«Ø¸m¤u¨ã¡C

        [3] http://search.cpan.org/search?module=CPAN
        [4] http://search.cpan.org/search?module=ExtUtils::MakeMaker

    ¤£©¯ªº¬O¡A±N¦w¸Ë¼Ò²Õ¥Îªº Shell »P¨åÂúô¨ú¦P¤@­Ó¦WºÙ¡A¾É­P¤F¤£¤Öªº²V¶Ã¡G·í¦³
    ¤H»¡¡uCPAN ²{¦bÄê±¼¤F¡v³o¥y¸Ü®É¡A«KµLªk§PÂ_¥L»¡ªº¬O Shell ¸Ìªº·å²«¡B¥L±`¥Î
    ªº¬M®g¯¸¥xÂ_½u¡AÁÙ¬O¦b¤Ï¹ï CPAN ³]­p¤Wªº¬Y¨Ç²Ó¸`¡C

    ¥t¤@ºØ«Ü±`¨£ªº²V²c¡A¬O¥H¬° CPAN¡u¯­µ¥©ó¡vPAUSE¡A¤]´N¬O¸g¥Ñ PAUSE ¤W¶Çªº¼Ò²Õ
    ¶°¦X¡C³oÁöµM¤£ºâ¿ù¡]CPAN ªºµ´¤j¦h¼Æ¤º®e¡A½T¹ê¬O±q PAUSE ¨Óªº¡^¡A¦ý¤]¤£¬O¥þ
    ¹ï¡C­º¥ý¡ACPAN ½T¹ê¦³ PAUSE ¤§¥~ªº¨Ó·½¡GCPAN ¦X¨Ö¤F¤@¨Ç¤pºô¯¸¡A¦Ó¥B¬Y¨ÇÀÉ®×
    ¡]¨Ò¦p§Nªù¥­¥x¤Wªº Perl ¤G¶i¨îÄÀ¥X®M¥ó¡^¤´µM¬O¤â°Ê¨ú±o¡]¦]¬°¥¦­Ì§ó·s±oºC¡^
    ¡C¦¹¥~¡AÁÙ¦³ ports ºô­¶¡A¦C¥X Perl ªº¤G¶i¨îÄÀ¥X®M¥ó¡F¨ä¤¤¦³¨Ç©ñ¦b CPAN¡A¦³
    ¨Ç«h³sµ²¨ì¨ä¥L¦a¤è¡C

¹ï¡]¥b¡^¦Û°Ê¤Æªº¦w¸Ë¤u¨ã¨Ó»¡¡A³Ì­«­nªº´N¬O²©ö¨ú±o¨Ì¦s¸ê°Tªº¥\¯à¡C²³æªº¤å¥ó²£
¥Í¬yµ{¡A¯à­°§C½u¤WÂsÄý¤å¥óªºÃø«×¡AÅý¨Ï¥ÎªÌ¯à§ó®e©ö¨M©w¬O§_­n¨ú¥Î¬Y­Ó¼Ò²Õ¡A¨Ã¥B
±N¥¦¥Î±o§ó¦n¡C

¥Ñ©ó CPAN Shell ¤éº¥¦ÑÁÚ¡A¨Ã¥B¯Ê¥F¨}¦nªºÀ³¥Îµ{¦¡¤¶­±¡A¦]¦¹¦³¤F CPANPLUS [5] ³o
­Ó·sªº­p¹º¡C²z·Q±¡ªp¤U¡A¥¦À³¸Ó¯àª½±µ¨ú¥N CPAN Shell ³o¦ì¦Ñ©¾¹²¡A¤S¯à´£¨Ñ§ó°ªªº
¼u©Ê»P©µ®i©Ê¡C¦P¼Ëªº¡A¤]¦³­Ó¨ú¥N MakeMaker ªº­p¹º¡A¥s§@ Module::Build [6]¡C

        [5] http://search.cpan.org/search?module=CPANPLUS
        [6] http://search.cpan.org/search?module=Module::Build

­nª`·Nªº¬O¡AÁöµM¨C­Ó Perl ÄÀ¥X®M¥ó¸Ì³£ªþ¤W CPAN.pm ¤Î MakeMaker¡A¤´µM¥i¥H§Q¥Î¨ä
¥L¤u¨ã¨Ó¦w¸Ë¼Ò²Õ¡GActiveState ¦Û¤v¦³¤@®M°w¹ï ActivePerl ³]­pªº ppm¡]
Programmer's package manager¡A­ì¦W Perl package manager¡^¡C

ÀHµÛ CPAN ªº§Ö³t¦¨ªø¡A­n§ä¨ì·Q­nªºªF¦è·U¨Ó·U¶O¤O¡C©¯¦n¡AGraham Barr ¦Û¤v¸Ñ¨M³o
­Ó°ÝÃDªº¦¨ªG¡A¤Î®É¥H search.cpan.org [7] ªº¦WºÙ¤½½Ñ©ó¥@¡C¦¹¥~ÁÙ¦³§Oªº CPAN ·j´M
¤ÞÀº¡A¹³¬O Randy Kobes ªº·j´M¾¹ [8] ¥H¤Î WAIT [9]¡F¤£¹L¡Asearch.cpan.org ¦ü¥G¬O
³Ì¼öªùªº¤@­Ó¡C

        [7] http://search.cpan.org/
        [8] http://kobesearch.cpan.org/
        [9] http://wait.cpan.org/

µy«á¡AAndreas ¥[¤J¤F backPAN [10]¡A¥Î¨Ó¦s©ñ§@ªÌ§R°£ªºÂª©¼Ò²Õ¡F³o©IÀ³¤F®Ö¤ß¦øªA
¾¹ªº¥²³Æ­n¥ó¤§¤@¡A¤]´N¬O¨}¦nªº³Æ¥÷¡C

        [10] http://history.perl.org/backpan/

cpan-testers ¬O­Ó¶l»¼½×¾Â¡]¥Ñ Graham Barr ¤Î Chris Nandor ³Ð³]¡^¡A¨ä¤¤ªº­q¤á¦Û
¦æ¤U¸ü³Ì·sªº¼Ò²Õ¡A¹Á¸Õ°õ¦æ¨ä¤¤ªº´ú¸Õµ{§Ç¡A¦A±N¦¨¥\»P§_¦^³ø¨ì¶l»¼½×¾Â¤W¡B¸ü¤J¸ê
®Æ®w¡A¨Ã¦^³øµ¹­ì§@ªÌ¡C³o¹ï¼W¶i¼Ò²Õªº¸ó¥­¥x¡B¸óÀô¹Ò©Ê¯à¡A´£¨Ñ¤F­«­nªº¨ó§U¡CÁÙ­n
ª`·Nªº¤@ÂI¡A¬O¼Ò²Õªþ¤W´ú¸Õµ{¦¡ªº¥²­n¡Ð¡Ð¤£µM¡A«ç»òª¾¹D¥¦¨ì©³¯à¤£¯à¹B§@©O¡H

        [11] http://testers.cpan.org/

³Ì«á¡A¹ï¼Ò²Õªº¨Ï¥Î¦^õX¡]·å²«¦^³ø¡B¥\¯à«Øij¡B·PÁ¨絥µ¥¡^¥i¥H¸g¥Ñ Jesse Vincent
¬[³]ªº RT ¥Ó½Ð³æ³B²z¨t²Î [12] ¨Ó¤Ï¬Mµ¹§@ªÌ¡C

        [12] http://rt.cpan.org/

¬M®g¯¸¥x

CPAN ¬M®g¯¸¥x [13] ©O¡H¥¦­Ì¬O«ç»ò¥X²{ªº¡H¤@¶}©lªº¤Q´X­Ó»¡¨Ó®e©ö¡G§Ú¯­¤£¹L¬O¼g«H
¸ß°Ý´£¨Ñ CPAN ­ì©l¸ê®Æªº¦U¯¸¥x¡A¬O§_Ä@·N·f¸ü³o­Óµy¤j¨Çªº·J¾ã¦Ó¤w¡C¶â¡A¥L­Ì¶Ì©I
©I¦aµªÀ³¤F... §Ú¥²¶·¦A­«¥Ó¤@¦¸¡ACPAN ­ì¥»¬O­Ó FTP ¨åÂ︡C¤£¬Oºô¯¸¡C¥¦¨ì¤µ¤Ñ¤´
µM¦p¦¹¡Fsearch.cpan.org ¯­¬O­Ó¦n¬Ýªº¤¶­±¦Ó¤w¡C¤Q¤À©êºp¡A¦ý§Ú¬O­Ó¥F¨ýªº¸ê°T¤uµ{
®v¡A¤£¬O¬ü³N³]­p®v¡C­«­nªº¬O¸ê°T¡A¦Ó¤£¬O°Êµe¡C

        [13] http://mirrors.cpan.org/

¾¾¡A¦^¨ÓÁ¿ CPAN ¬M®g¯¸¥x¡C¦b°_ªìªº´X­Ó¤§«á¡A§Ú­Ì¾a Perl ªÀ¸sªº¤f¦Õ¬Û¶Ç¡AºCºC¦¨
ªø¤F¤@°}¤l¡CµM¦Ó¡A¦]¬°¨º®É­ÔÁÙ¨S¦³»ù­È¤W»õ¤¸ªº¥úÅÖçE¶i¦a©³¡A©Ò¥Hºô¸ô³s½u¤´µM¤£
¤Óí©w¡C¦]¦¹¡A§Ú¶}©l°µ¨â¥ó¨Æ±¡¡GÀˬd FTP ¬ö¿ý¡A§ä¥XÅãµM¦b¬M®g CPAN «o¨S¦³µù¥Uªº
¯¸¥x¡A¥H¤Î¯à¥Nªí©ÒÄݳ»¼hºô°ìªº¯¸¥x¡]¯S§O¬O¤C¤j TLD ¤§¥~ªººô°ì¡^¡C³o¼Ë¤@¨Ó¡A§Ú´N
¯à§ä¨ì Perl ¨Ï¥ÎªÌªº©Ò¦b¦aÂI¡A¨Ã½Ð¨D³o¨Ç¯¸¥x¥[¤J¬M®g¡A´î§C¥D¯¸¥xªº¬y¶q­t²ü¡C¤§
«á¡A§Ú³y³X¤F sunsites µ¥¼t°Ó©Î¤½®a¤ä´©ªº¤j¯¸¡A¶ñº¡¤F´X­ÓªÅ¯Êªº°ê®a¡C§Ú³q±`Á`¯à
³sµ¸¤W¹ï¤èªº¨t²ÎºÞ²z­û¡A±o¨ìµ½¸Ñ¤H·Nªº¦^À³¡C

CPAN ¬M®g¯¸¥xªºª¬ºA¨C¤Ñ§ó·s¥|¦¸¡A¥Ñ¦ì©ó¤£¦P¤j³°ªº¨â¥x¾÷¾¹­t³dºÊµø¡C¹L´Áªº¬M®g¯¸
¥x´X¥Gµ¥©óµL¥Î¡A¦³®É§ó¥i¯à³y¦¨¦MÀI¡CÀHµÛ¬M®g¯¸¥x¼Æªº¼W¥[¡A¤@¦¸±½ºË©¹©¹¤£¯à½T»{
¥þ³¡ªºÓèªp¡GÁ`¬O·|¦³ºô¸ô©Î¦øªA¾¹ªº°ÝÃD¡AÅý¬Y´X¯¸ªº³s½u¥¢±Ñ¡C°£«D¦U¯¸¦Û¤v°õ¦æÀË
¬d¡A§_«h·Q½T»{©Ò¦³¯¸¥x¤W¨C­ÓÀɮתº¤º®e¡A²ª½¬O¤Ñ¤è©]ÃÓ¡CCPAN ¥õ¿à¤@­Ó²³æªº¤p§Þ
¥©¡GCPAN ¥D¯¸¨C¤p®É¤W¸ü¤@­Ó¯S®íªºÀɮסA¸Ì­±©ñ®É¶¡ÂW°O¡]¥H°ê»Ú¼Ð·Ç®Éªí¥Ü¡^¡C¯­­n
±q¬M®g¯¸¥x¤U¸ü³o­ÓÀɮסB¸Ñ¥X®É¶¡ÂW°O¡A´N¥i¥H»´©ö±o¥X¤W¦¸§ó·sªº®É¶¡¡C

Ãö©ó¬M®g¯¸¥x³o¬q¸ÜªºÁ`µ²¡G§Ú§äªº¬O³ß·R©Î¨Ï¥Î Perl ªº¯¸¥x¡C§ÚµLªk½T»{¥L­Ì¬O§_¤]
·R¥Î Mumble¡C¬M®g¯¸¥x®½¥X¤F¥L­ÌªºÀW¼e¡BÀx¦sªÅ¶¡¥H¤ÎºÞ²z­ûªº®É¶¡¡A´£¨Ñ Perl ªÀ¸s
¨Ï¥Î¡C¦pªG§Ú­Ì­nÂX¼W¨ä¤¤ªº¥ô¦ó¤@¶µ¡A³£±o¥ý¨ú±o¦U¯¸¥xªº¦P·NÅצæ¡C

CPAN ²Õ¦¨¤¸¥ó¹Ï

­n¶i¤@¨B¾é¸Ñ CPAN ªº¾ú¥v¡A½Ð°Ñ¦Ò Perl ¤j¨Æ¬ö [14]¡C¨Æ±¡¤£¬O¤@¤Ñ³y¦¨ªº¡C

        [14] http://history.perl.org/PerlTimeline.html

©R¦W

¨}¦nªº¼Ò²Õ©R¦W¤è¦¡¡A¹ï§@ªÌ©M¨Ï¥ÎªÌ³£«Ü­«­n¡CPerl »P CPAN ªº©R¦W¤è¦¡ÁöµM®t±j¤H·N
¡A¦ý¦Ü¤Ö¬Oºë¤ß³]­p¡B¦A¨Ì»Ý¨Dºt¤Æ¹L«áªº²£ª«¡C«ê·íªº©R¦W¤è¦¡¡A¤£¦ý¯à§e²{¶¥¼h¦¡ªº
ÂsÄý¤¶­±¡A¤]¥i¥H´£¨Ñ¨}¦nªº´£¥Üµ¹·j´M¤ÞÀº¨Ï¥Î¡]«ê·íªº¼Ò²Õ¦WºÙ¡A¹ê»Ú¤W´N¬O¤@²Õ¿W
¤@µL¤GªºÃöÁä¦r¦ê¡^¡A¨Ã¥B¨ó½ÕªÀ¸sªº¤º³¡¤À¤u¡C¦¹¥~¡A¦b¦h¤HÄvª§¦P¦Wªº¼Ò²Õ®É¡A¸Ñ¨M
ªÈ¯Éªº¾÷¨î¤]¬O¥²­nªº¡C§ó­«­nªº¡A¬O±N³o¨Ç³W½d²M·¡¼g¤U¨Ó¡A¨Ã¥B¤½¶}©Ò¦³ªº¬yµ{¡C

    ­Ó¤Hı±o¡APerl 5 ©R¦W¨t²Îªº¯Ê¾Ñ¤§¤@¡A´N¬O±Ä¥Î¡u¥ý¨Ó¥ýĹ¡vªºµ{§Ç¡A¾É­P¨C­Ó¦W
    ºÙ¯­¯à¥Ñ¤@¦ì§@ªÌ¾Ö¦³¡C³o¥i¯à¦³·NµL·N¶¡³y¦¨¡u¦û¦W¬°¤ý¡vªº±¡ªp¡A©Î¬O¹L©ó±¡ºü
    ©Êªºª§½×¡F³o¨âªÌ³£¹ïªÀ¸s¤£§Q¡C

¦b³]­p§@ªÌ¡B¼Ò²Õµ¥¶¥¼h®É¡AÀ³¸Ó­n¦Ò¼{©µ®i©Ê¡C§Ú­Ì¤@¶}©l¥Ç¤F­Ó¤p¿ù¡A±N§@ªÌ¦WºÙµø
°µ¦P¤@­Ó¥Ø¿ý¤Uªº¦¸¥Ø¿ý¡F³o«Ü§Ö´N¦¨¤F¨t²Îªº²~ÀV¡C¡]«á¨Óªº¸Ñªk«Ü²³æ¡A¯­­n¥Î«e¨â
­Ó¦r¤¸°µ¡uÂø´ê¡v´N¬O¤F¡C¡^³Ì¦n¦Ò¼{³\¦hºØÀ˵ø¸ê®Æªº¤è¦¡¡G¨Ì§@ªÌ¡B¨Ì¼Ò²Õ¡B¨ÌÃþ§O
¡B¨Ì¤é´Á¡B¨ÌÃöÁä¦rµ¥µ¥¡C¤£­n¥H¬°¦³¶¥¼h¥Ø¿ý´N°÷¤F¡GÁ`¦³¤@¤Ñ·|»Ý­n·j´M¥\¯àªº¡C

±ÂÅv±ø´Ú

±q¶}±iªº²Ä¤@¤Ñ°_¡A´N¸Ó§â±ÂÅv­ì«h·Q²M·¡¡C¤£¹ï¡A­n±q«e¤@¤Ñ°_¡C³o¦~ÀYªº¨C¥÷³nÅé¡A
³Ì¦n³£¯à¼Ð©ú¥¦ªº±ÂÅv±ø´Ú¡C®M¥ó«Ê¸Ë¤u¨ã¦b³]­p®É¡A´N¸Ó«Øij¡]¬Æ©Î­n¨D¡^¨Ï¥ÎªÌ¿ï¾Ü
¤@ºØ±ÂÅv¡C³o¼Ë¤@¨Ó¡A¼Ò²Õªº¨Ï¥ÎªÌ©M¶Ç¼½ªÌ´N¤£¥Î¦Û¤v½M²q¤F¡C

¸ò±ÂÅv±ø´Ú¦³±K¤ÁÃö«Yªº¡A·íµMÁÙ¦³°Ó·~³nÅ骺°ÝÃD¡CCPAN ±Ä¨ú¤F²¼ä©ú½Tªº¬Fµ¦¡A¸T¤î
¤@¤Á±MÄݳnÅé¡A¥]¬A¦@¨É³nÅé¡B¸o´c·P³nÅé¡B®½Äm³nÅéµ¥µ¥¡C§Ú­Ì»{¬°¡A§OºØ¬Fµ¦¥²µM·|
¦³ª§Ä³ªºªÅ¶¡¡A¬Æ¦Ü·|©Û¨Óªk«ß°ÝÃD¡F§@¬°¤@­Ó¯Â¥Ñ§ÓÄ@ªÌ²Õ¦¨ªº¹Î¶¤¡A§Ú­Ì¨Ã¨S¦³³B²z
³oºØ¨Æ±¡ªº®É¶¡»P¸ê·½¡C

½T«O¦w¥þ

¤£®ø»¡¡A¨åÂúôªº®Ö¤ß¦øªA¾¹À³¸Ó±Ä¨ú³ÌÄY®æªº¦w¥þ±¹¬I¡A¨Ã¥BÂÔ·VºûÅ@¡F¦ý¬O¦b¦¹ÁÙ¬O
¥mÀ{¤@¥y¡C

¬O§_À³¸Ó­n¨Ï¥Î PGP/GPG ª÷°Í¡A¥H¤ÎÝ÷¦å¬°·ùªº±j¤Oñ³¹¡H¤]³\§a¡C¥Ø«e CPAN ¯­¦³ MD5
¥[Á`Àˬd¡Ð¡Ð¦ý¬O¥Ø«e¬°¤î¬O°÷¥Î¤F¡C¸Ü»¡¦^¨Ó¡A¦Ò¼{¨ìªñ¨Ó°w¹ï¦Û¥Ñ³nÅéµo°Êªº¯S¬¥¥ì
¤ì°¨§ðÀ»®×¥ó¡A¤]³\·|»Ý­n§ó°ª¼h¦¸ªº«H¥ô¡CªÀ¸s¸Ì¦³¨Ç­p¹º¡AÅý¨Ï¥ÎªÌ¯àÂÇ¥Ñ PGP/GPG
ª÷°Í½T©w®M¥óªº¨Ó·½¡F¦ý´N©M©Ò¦³¤½¶}ª÷°Í¨t²Î¤@¼Ë¡A­è¶}©l«Ø¥ß°_«H¥ôÃìÁ`¬O³ÌÃøªº¤@
Ãö¡A¤]¥O¬Y¨Ç¤HÃhºÃ¬O§_­È±o¡C¤½¶}ª÷°Í­n©ñ­þ¸Ì©O¡HÅãµM¤£¬O¦b´²§G¼Ò²Õªº¦P¤@­Ó¦a¤è
¡C§A¤S«H¥ô­þ­Ó¤½¶}ª÷°Í¦øªA¾¹©O¡H¦pªG¤£¥Î¤½¶}ª÷°Í¨t²Î¡A¤]¥i¥H±N­ì©lªº¥[Á`ÀˬdÀÉ
¤À´²¦b³\¦h¦ì¸m¡AÅý§ðÀ»ªÌµL±q¤@¤@¤U¤â¡C¦ý¦b¨ä¤¤¬Y­ÓÀô¸`¤W¡A§A´X¥GÁÙ¬O«D±o«H¥ô
DNS ¨t²Î¤£¥i¡C

½T«O¶}©ñ

«~½è±±ºÞ¡Hµû¤À¡Bµû»y¡H¥æ¤eµû¤ñ¡H¡u¥¿¦¡®Ö­ã¡vªº³nÅé¶}µo®M¥ó©O¡H³o¨Ç³£¬O¼ö¯P°Q½×
¤¤ªºÄ³ÃD¡A¦b¦¹¤£¥[ÂØ­z¡C²¦³º¡ACPAN ²{¦b¤Î¥¼¨Ó³£·|¬O¶}©ñ¦Ó¦Û¥Ñªº³õ°ì¡A¥Ñ§@ªÌ¦Û¦æ
¨M©w¤W¸üªº¤º®e¡F¨ä«á¥ô¦óªº´z¿ï¡A³£ÄÝ©ó¦U§Oªº°Q½×½d³ò¡C¦¹¥~¡Aµû¤À©Î®Ö­ã¾÷¨î·|²£
¥Í²~ÀV¡A¦Ó²~ÀV¤£¬O¦n¨Æ¡C

­n·ÓÅU¨ì Intel Linux ¤Î Windows ¤§¥~ªº¨t²Î¨S¥²­n§â¤f¨ý¿W¯Sªº¨Ï¥ÎªÌ·í°µ­¯¸ô¤H¡C
¦³¤@¤Ñ¥L­Ì·|À°¤W¦£ªº¡C

Åý¨åÂúôªº¤º®e¯à³z¹L³\¦h³~®|§e²{¤£­n¯­´£¨Ñ HTTP ¦Ó¤w¡F¤]­n¦Ò¼{¨ì FTP ©M rsync¡C
¸Ü»¡¦^¨Ó¡A¥ý¤ä´©°ò¥»ªº¨ó©w´N¦n¤F¡Ð¡Ð¤£­n¿³¾Ä¹L«×¡A¤@¤U´N­n«Ø­Óªá¹ÎÀAÁLªº Web
Service ¥­¥x¡A©Î¨ä¥L¤°»ò¥¿¦b¬y¦æªºªF¦è¡C³o©IÀ³¤F¤£¨Ì¿à¯S©w¥­¥xªº­n¨D¡G¼Ò²Õªº«Ê
¸Ë¤è¦¡¡AÀ³¸ÓÅý¾¨¥i¯à¦hªº¤H¯à°÷¦w¸Ë¡C

CPAN µ{¦¡¶°

ºûÅ@ CPAN ªºµ{¦¡¡A¯u¬O²³æ±o­n©R¡C¥¦­Ì¯­¬O¨Ç¥Ñ Cron ©w®É±Ò°Êªº Shell ©R¥O½Z¡A±N
A¡BB ... Z µ¥¯¸¥x½Æ»s¨ì¦ì©ó ftp.funet.fi ªº CPAN ¥D¯¸¦Ó¤w¡C¤j³¡¥÷¥Îªº¬O¥j¦Ñªº 
mirror [15]¡A¦³¨Ç«h¯­¬O rsync [16] ¦Ó¤w¡C³o¨S¤°»ò¶ø§®ªº¡F§Ú¯uªº¨S¦³¤@¥÷¯«©_ªº
CPAN ©G»y³U¡A¸Ëº¡«Â¤O±j¤jªº¨÷¶b¡CCPAN ¥D¯¸¤W³Ì½ÆÂøªºµ{¦¡¡A´N¬OÀˬd¦U­Ó¬M®g¯¸¥x
§ó·sª¬ªpªº©R¥O½Z [17]¡Ð¡Ð¥¦¤]¤£¬O¤°»ò°ª¬ì§Þ²£ª«¡A¯­¬O¦h¤u¶Ç¿é FTP ¤Î HTTP ¤U¸ü
¡A¦A¤ñ¹ï®É¶¡ÂW°O¦Ó¤w¡C

        [15] http://www.cpan.org/CPAN/scripts/ftpstuff/
        [16] http://www.rsync.org/
        [17] http://www.cpan.org/CPAN/misc/CPAN-code/

Andreas ¤w±N PAUSE ªººô¯¸·½½X¤½§G¦bºô¯¸¤W [18]¡C³o¥÷µ{¦¡¤ñ CPAN ªº®Ö¤ß·½½X¡B
PAUSE ªº¤ä´©µ{¦¡³£­n½ÆÂø¨Ç¡F¦ý§Y¨Ï¦p¦¹¡A¥¦¤]¬O¤½¶}¥i¨úªº¡C§Ú­Ì³S¤l¸Ì¨Ã¨S¦³ÂõÛ
¤°»ò¯¦±K¡C

        [18] ftp://pause.perl.org/pub/PAUSE/PAUSE-code/

µ²»y

³oºØ¨Æ¬O¨S¦³Å]ªkªº¡C¤@¶}©l¡A¯­»Ý­n¦³´X­Ó¤HµÛ¤âÅý¤@¨ÇªF¦è°Ê°_¨Ó¡A¦h²ÊÁW¤]µL§«¡C
¦¹«á¡A¤@¨B¨B¦a§ïµ½¥¦¡C§O¸Õ¹Ï³W¹º¥X¥]ù¸U¦³ªº§¹¬üÂŹϡF¥¦¯­·|±N§A²T¨S¦Ó¤w¡C

¤W­±»¡ªº¡A¤]¥i¥H¥ÎÄ_¶Qªº KISS ·Ç«h¨Ó·§¬A¡Ð¡ÐKeep It Simple, Stupid.¡CÁקK½ÆÂøªº
¨t²Î¡F±q²³æªº¶}©l¡C

¥t¤@¶µ­«­nªº®y¥k»Ê¬O¡GÁקK²~ÀV»P¥æ¤¬¨Ì¿à¡C¤À´²Åv¤O¡C«Ø¥ß¨Ã¹ªÀy¥tÃþªº¸Ñªk¡C¡CÁ|
¨Ò¨Ó»¡¡ACPAN ¤W³Ì¨üÅwªïªº·j´M¤ÞÀº¡A¨ä¹ê¨Ã¤£¦b CPAN ®Ö¤ßªA°È¤§¤¤¡F
search.cpan.org ¯­¬O±q CPAN ¬M®gÀɮסA±q¤¤«Ø¥ß¯Á¤Þ¤Î¬d¸ß¤¶­±¦Ó¤w¡C³o¼Ë¤@¨Ó¡A
CPAN ´N¯à¦³¦n´X­Ó·j´M¤ÞÀº¡C¦P¼Ëªº¡A§Ú­Ì¥Ø«e¨Ï¥Î CPAN.pm + MakeMaker ¨Ó¦w¸Ë¼Ò²Õ
¡A¦ý¬O³o¨âªÌ¨Ã«D¤£¥i´À¥N¡A¦ÓªÀ¸s¤]¦b¶}µo¤U¤@¥Nªº¤u¨ã¤F¡C¦U¶µªA°È¶¡À³«O«ùÃP´²³s
µ²¡C¦p¦¹¤£¦Pªº¤HÅׯà¦U¦Û¶}µo·sªº¥\¯à¡A¦Ó¤£·|©¼¦¹²o¨î¡C

¦Ó³Ì»Ý­nªº¡A©Î³\ÁÙ¬O°õµÛ¡GÁ`¦³¤H±oÅý¨Æ±¡°Ê¤U¥h¡C¤@­Ó½w½wÖEµäªº¨åÂúô¡A´Nºâ¤£¦p
¤°»ò³£¨S¦³¡A°_½X¬O§ó¥O¤H¶Ë·Pªº¡C

Oook¡A°h³õ¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w 

    ¦b¼¶¼g¥»¤åªº¹Lµ{¤¤¡A±o¨ì¤F³\¦hªB¤Íªº¬Ã¶Q¦^õX¡G·PÁ CPAN ®Ö¤ß¹Î¶¤¡A¥H¤Î 
    use.perl.org¡]Perl ªº·s»D¤ÎªÀ¸s¯¸¥x¡^ªºÅªªÌ­Ì¡C¯S§O·PÁ Neil Kandalgaonkar
    ¤À¨É¥L¦b ActiveState ¤º³¡¤u§@®Éªº¥Ì­W½Í¡C

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w 
¥»¤å¬O¦Û¥Ñ¤å¥ó¡A¥i¥H¨Ì»P Perl ¬Û¦Pªº±ÂÅv±ø´Ú´²§G¡C¤¹³\¤Þ¥Î¡B³sµ²¡B½Ķ©Î¨Ï¥Î´¡
¹Ï¡A±©¥²¶·«O¯d­ì¤åªººô§}¡]http://www.cpan.org/misc/ZCAN.html¡^¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w 

$Date: 2003/01/20 $

Jarkko Hietaniemi, CPAN À]ªø