#!/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·Qn¥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/
§Ú·|¥Ht±¤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¦¨ªø¡An§ä¨ì·Qnªºª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¶qt²ü¡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¤£¹ï¡An±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´Nn«ØÓªá¹ÎÀ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²³æ±on©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 À]ªø