|
¡¡
|
¡¡
|
|
µÚÊ®ËÄÕ Perl5µÄ°üºÍÄ£¿é
by chinacode
Ò»¡¢requireº¯Êý
1¡¢requireº¯ÊýºÍ×Ó³ÌÐò¿â
2¡¢ÓÃrequireÖ¸¶¨Perl°æ±¾
¶þ¡¢°ü
1¡¢°üµÄ¶¨Òå
2¡¢ÔÚ°ü¼äÇл»
3¡¢main°ü
4¡¢°üµÄÒýÓÃ
5¡¢Ö¸¶¨ÎÞµ±Ç°°ü
6¡¢°üºÍ×Ó³ÌÐò
7¡¢Óðü¶¨Òå˽ÓÐÊý¾Ý
8¡¢°üºÍϵͳ±äÁ¿
9¡¢·ÃÎÊ·ûºÅ±í
Èý¡¢Ä£¿é
1¡¢´´½¨Ä£¿é
2¡¢µ¼ÈëÄ£¿é
3¡¢Ô¤¶¨ÒåÄ£¿é
Ò»¡¢requireº¯Êý
ÓÃrequireº¯Êý¿ÉÒ԰ѳÌÐò·Ö¸î³É¶à¸öÎļþ²¢´´½¨º¯Êý¿â¡£ÀýÈ磬ÔÚmyfile.plÖÐÓж¨ÒåºÃµÄPerlº¯Êý£¬¿ÉÓÃÓï¾ärequire ("myfile.pl"); ÔÚ³ÌÐòÖаüº¬½øÀ´¡£µ±Perl½âÊÍÆ÷¿´µ½ÕâÒ»Óï¾ä£¬¾ÍÔÚÄÚÖÃÊý×é±äÁ¿@INCÖ¸¶¨µÄĿ¼ÖÐѰÕÒÎļþmyfile.pl¡£Èç¹ûÕÒµ½ÁË£¬¸ÃÎļþÖеÄÓï¾ä¾Í±»Ö´ÐУ¬·ñÔò³ÌÐòÖÕÖ¹²¢Êä³ö´íÎóÐÅÏ¢£º
Can't find myfile.pl in @INC
×÷Ϊ×Ó³ÌÐòµ÷ÓòÎÊý£¬ÎļþÖÐ×îºóÒ»¸ö±í´ïʽµÄÖµ³ÉΪ·µ»ØÖµ£¬requireº¯Êý²é¿´ÆäÊÇ·ñΪÁ㣬ÈôΪÁãÔòÖÕÖ¹¡£ÀýÈçmyfile.pl×îºóµÄÓï¾äÊÇ£º
print ("hello, world!\n");
$var = 0;
ÒòΪ×îºóµÄÓï¾äֵΪÁ㣬Perl½âÊÍÆ÷Êä³öÏÂÁдíÎóÐÅÏ¢²¢ÍƳö£º
myfile.pl did not reture true value
¿ÉÒÔÓüòµ¥±äÁ¿»òÊý×éÔªËØµÈÏòrequire´«µÝ²ÎÊý£¬È磺
@reqlist = ("file1.pl", "file2.pl", "file3.pl");
require ($reqlist[$0]);
require ($reqlist[$1]);
require ($reqlist[$2]);
»¹¿ÉÒÔ²»Ö¸¶¨ÎļþÃû£¬¼´£º
require;
Õâʱ£¬±äÁ¿$_µÄÖµ¼´×÷ΪÎļþÃû´«µÝ¸ørequire¡£
×¢£ºÈç¹û@INCÖÐÓжà¸öĿ¼Öк¬ÓÐͬһ¸öÎļþ£¬ÔòÖ»ÓеÚÒ»¸ö±»°üº¬¡£
1¡¢requireº¯ÊýºÍ×Ó³ÌÐò¿â
ÓÃrequireº¯Êý¿ÉÒÔ´´½¨¿ÉÓÃÓÚËùÓÐPerl³ÌÐòµÄ×Ó³ÌÐò¿â£¬²½ÖèÈçÏ£º
a¡¢È·¶¨´æÖü×Ó³ÌÐò¿âµÄĿ¼
b¡¢½«×Ó³ÌÐò³éÈ¡·Åµ½µ¥¶ÀµÄÎļþÖУ¬½«Îļþ·Åµ½×Ó³ÌÐò¿âĿ¼
c¡¢Ã¿¸öÎļþĩβ¼ÓÒ»¾ä·ÇÁãÖµµÄÓï¾ä£¬×î¼òµ¥µÄ°ì·¨ÊÇÓï¾ä 1;
d¡¢ÔÚÖ÷³ÌÐòÖÐÓÃrequire°üº¬Ò»¸ö»ò¶à¸öËùÐèµÄÎļþ¡£
e¡¢ÔËÐÐÖ÷³ÌÐòʱ£¬Óà -I Ñ¡ÏîÖ¸¶¨×Ó³ÌÐò¿âĿ¼£¬»òÕßÔÚµ÷ÓÃrequireǰ½«¸ÃĿ¼Ìí¼Óµ½@INCÊý×éÖС£
ÀýÈ磺¼ÙÉèĿ¼/u/perldirÖдæÓÐÄãµÄPerl×Ó³ÌÐò¿â£¬×Ó³ÌÐòmysub´æÖüÔÚÎļþmysub.plÖС£ÏÖÔÚÀ´°üº¬ÉϸÃÎļþ£º
unshift (@INC, "/u/perldir");
require ("mysub.pl");
¶ÔunshiftµÄµ÷ÓðÑĿ¼/u/perldirÌí¼Óµ½@INCÊý×飬¶ÔrequireµÄµ÷Óý«mysub.plÎļþµÄÄÚÈݰüº¬½øÀ´×÷Ϊ³ÌÐòµÄÒ»²¿·Ö¡£
×¢Ò⣺
1¡¢Ó¦¸ÃʹÓÃunshiftÀ´Ïò@INCÖÐÌí¼ÓĿ¼£¬¶ø²»ÊÇpush¡£ÒòΪpushÔö¼Óµ½@INCµÄĩ⣬Ôò¸ÃĿ¼½«±»×îºóËÑѰ¡£
2¡¢Èç¹ûÄãµÄ¿âÎļþÃûÓë/usr/local/lib/perlÖеÄijÎļþͬÃû£¬Ôò²»»á±»°üº¬½øÀ´£¬ÒòΪrequireÖ»°üº¬Í¬ÃûÎļþÖеĵÚÒ»¸ö¡£
2¡¢ÓÃrequireÖ¸¶¨Perl°æ±¾
Perl 5ÖУ¬¿ÉÒÔÓÃrequireÓï¾äÀ´Ö¸¶¨³ÌÐòÔËÐÐËùÐèµÄPerl°æ±¾¡£µ±Perl½âÊÍÆ÷¿´µ½requireºó¸ú×ÅÊý×Öʱ£¬ÔòÖ»ÓÐÆä°æ±¾¸ßÓÚ»òµÈÓÚ¸ÃÊý×Öʱ²ÅÔËÐиóÌÐò¡£ÀýÈ磬ÏÂÃæÓï¾ä±íÃ÷Ö»ÓÐPerl½âÊÍÆ÷Ϊ5.001°æ»ò¸ü¸ßʱ²ÅÔËÐиóÌÐò£º
require 5.001;
¶þ¡¢°ü
Perl³ÌÐò°Ñ±äÁ¿ºÍ×Ó³ÌÐòµÄÃû³Æ´æÖüµ½·ûºÅ±íÖУ¬perlµÄ·ûºÅ±íÖÐÃû×ֵļ¯ºÏ¾Í³ÆÎª°ü(package)¡£
1¡¢°üµÄ¶¨Òå
ÔÚÒ»¸ö³ÌÐòÖпÉÒÔ¶¨Òå¶à¸ö°ü£¬Ã¿¸ö°üÓÐÒ»¸öµ¥¶ÀµÄ·ûºÅ±í£¬¶¨ÒåÓ﷨Ϊ£º
package mypack;
´ËÓï¾ä¶¨ÒåÒ»¸öÃûΪmypackµÄ°ü£¬´Ó´ËÒÔºó¶¨ÒåµÄËùÓбäÁ¿ºÍ×Ó³ÌÐòµÄÃû×Ö¶¼´æÖüÔڸðü¹ØÁªµÄ·ûºÅ±íÖУ¬Ö±µ½Óöµ½ÁíÒ»¸öpackageÓï¾äΪֹ¡£
ÿ¸ö·ûºÅ±íÓÐÆä×Ô¼ºµÄÒ»×é±äÁ¿¡¢×Ó³ÌÐòÃû£¬¸÷×éÃû×ÖÊDz»Ïà¹ØµÄ£¬Òò´Ë¿ÉÒÔÔÚ²»Í¬µÄ°üÖÐʹÓÃÏàͬµÄ±äÁ¿Ãû£¬¶ø´ú±íµÄÊDz»Í¬µÄ±äÁ¿¡£È磺
$var = 14;
package mypack;
$var = 6;
µÚÒ»¸öÓï¾ä´´½¨±äÁ¿$var²¢´æÖüÔÚmain·ûºÅ±íÖУ¬µÚÈý¸öÓï¾ä´´½¨ÁíÒ»¸öͬÃû±äÁ¿$var²¢´æÖüÔÚmypack°üµÄ·ûºÅ±íÖС£
2¡¢ÔÚ°ü¼äÇл»
ÔÚ³ÌÐòÀï¿ÉÒÔËæÊ±ÔÚ°ü¼äÀ´»ØÇл»£¬È磺
1: #!/usr/local/bin/perl
2:
3: package pack1;
4: $var = 26;
5: package pack2;
6: $var = 34;
7: package pack1;
8: print ("$var\n");
ÔËÐнá¹ûÈçÏ£º
$ program
26
$
µÚÈýÐж¨ÒåÁ˰üpack1£¬µÚËÄÐд´½¨±äÁ¿$var£¬´æÖüÔÚ°üpack1µÄ·ûºÅ±íÖУ¬µÚÎåÐж¨Òåаüpack2£¬µÚÁùÐд´½¨ÁíÒ»¸ö±äÁ¿$var£¬´æÖüÔÚ°üpack2µÄ·ûºÅ±íÖС£ÕâÑù¾ÍÓÐÁ½¸ö¶ÀÁ¢µÄ$var£¬·Ö±ð´æÖüÔÚ²»Í¬µÄ°üÖС£µÚÆßÐÐÓÖÖ¸¶¨pack1Ϊµ±Ç°°ü£¬ÒòΪ°üpack1ÒѾ¶¨Ò壬ÕâÑù£¬ËùÓбäÁ¿ºÍ×Ó³ÌÐòµÄ¶¨ÒåºÍµ÷Óö¼Îª¸Ã°üµÄ·ûºÅ±íÖдæÖüµÄÃû×Ö¡£Òò´ËµÚ°ËÐжÔ$varµÄµ÷ÓÃΪpack1°üÖеÄ$var£¬ÆäֵΪ26¡£
3¡¢main°ü
´æÖü±äÁ¿ºÍ×Ó³ÌÐòµÄÃû×ÖµÄȱʡ·ûºÅ±íÊÇÓëÃûΪmainµÄ°üÏà¹ØÁªµÄ¡£Èç¹ûÔÚ³ÌÐòÀﶨÒåÁËÆäËüµÄ°ü£¬µ±ÄãÏëÇл»»ØÈ¥Ê¹ÓÃȱʡµÄ·ûºÅ±í£¬¿ÉÒÔÖØÐÂÖ¸¶¨main°ü£º
package main;
ÕâÑù£¬½ÓÏÂÀ´µÄ³ÌÐò¾ÍºÃÏó´Óû¶¨Òå¹ý°üÒ»Ñù£¬±äÁ¿ºÍ×Ó³ÌÐòµÄÃû×ÖÏóͨ³£ÄÇÑù´æÖü¡£
4¡¢°üµÄÒýÓÃ
ÔÚÒ»¸ö°üÖпÉÒÔÒýÓÃÆäËü°üÖеıäÁ¿»ò×Ó³ÌÐò£¬·½·¨ÊÇÔÚ±äÁ¿ÃûÇ°Ãæ¼ÓÉϰüÃûºÍÒ»¸öµ¥ÒýºÅ£¬È磺
package mypack;
$var = 26;
package main;
print ("$mypack'var\n");
ÕâÀ$mypack'varΪmypack°üÖеıäÁ¿$var¡£
×¢Ò⣺ÔÚPerl 5ÖУ¬°üÃûºÍ±äÁ¿ÃûÓÃ˫ðºÅ¸ô¿ª£¬¼´$mypack::var¡£µ¥ÒýºÅÒýÓõķ½Ê½ÈÔȻ֧³Ö£¬µ«½«À´µÄ°æ±¾ÖÐδ±ØÖ§³Ö¡£
5¡¢Ö¸¶¨ÎÞµ±Ç°°ü
ÔÚPerl 5ÖУ¬¿ÉÒÔÓÃÈçÏÂÓï¾äÖ¸¶¨ÎÞµ±Ç°°ü£º
package;
Õâʱ£¬ËùÓеıäÁ¿±ØÐëÃ÷È·Ö¸³öËùÊô°üÃû£¬·ñÔò¾ÍÎÞЧ--´íÎó¡£
$mypack::var = 21; #ok
$var = 21; #error - no current package
ÕâÖÖÇé¿öÖ±µ½ÓÃpackageÓï¾äÖ¸¶¨µ±Ç°°üΪֹ¡£
6¡¢°üºÍ×Ó³ÌÐò
°üµÄ¶¨ÒåÓ°Ïìµ½³ÌÐòÖеÄËùÓÐÓï¾ä£¬°üÀ¨×Ó³ÌÐò£¬È磺
package mypack;
subroutine mysub {
local ($myvar);
# stuff goes here
}
ÕâÀmysubºÍmyvar¶¼ÊǰümypackµÄÒ»²¿·Ö¡£ÔÚ°ümypackÍâµ÷ÓÃ×Ó³ÌÐòmysub£¬ÔòÒªÖ¸¶¨°ü£º$mypack'mysub¡£
¿ÉÒÔÔÚ×Ó³ÌÐòÖÐÇл»°ü£º
package pack1;
subroutine mysub {
$var1 = 1;
package pack2;
$var1 = 2;
}
Õâ¶Î´úÂë´´½¨ÁËÁ½¸ö±äÁ¿$var1£¬Ò»¸öÔÚ°üpack1ÖУ¬Ò»¸öÔÚ°üpack2ÖУ¬°üÖеľÖÓò±äÁ¿Ö»ÄÜÔÚÆä¶¨ÒåµÄ×Ó³ÌÐòµÈÓï¾ä¿éÖÐʹÓã¬ÏñÆÕͨµÄ¾ÖÓò±äÁ¿Ò»Ñù¡£
7¡¢Óðü¶¨Òå˽ÓÐÊý¾Ý
°ü×îͨ³£µÄÓÃ;ÊÇÓÃÔÚº¬ÓÐ×Ó³ÌÐòºÍ×Ó³ÌÐòËùʹÓõÄÈ«¾Ö±äÁ¿µÄÎļþÖУ¬Îª×Ó³ÌÐò¶¨ÒåÕâÑùµÄ°ü£¬¿ÉÒÔ±£Ö¤×Ó³ÌÐòʹÓõÄÈ«¾Ö±äÁ¿²»¿ÉÔÚÆäËüµØ·½Ê¹Óã¬ÕâÑùµÄÊý¾Ý¼´ÎªË½ÓÐÊý¾Ý¡£¸ü½øÒ»²½£¬¿ÉÒÔ±£Ö¤°üÃû²»¿ÉÔÚÆäËüµØ·½Ê¹Óá£Ë½ÓÐÊý¾ÝÀý£º
1 : package privpack;
2 : $valtoprint = 46;
3 :
4 : package main;
5 : # This function is the link to the outside world.
6 : sub printval {
7 : &privpack'printval();
8 : }
9 :
10: package privpack;
11: sub printval {
12: print ("$valtoprint\n");
13: }
14:
15: package main;
16: 1; # return value for require
´Ë×Ó³ÌÐòÖ»ÓÐÔÚµ÷ÓÃprintvalºó²ÅÄܲúÉúÊä³ö¡£
¸ÃÎļþ·ÖΪÁ½¸ö²¿·Ö£ºÓëÍâ½çÁªÏµµÄ²¿·ÖºÍ˽Óв¿·Ö¡£Ç°ÕßΪȱʡµÄmain°ü£¬ºóÕßΪ°üprivpack¡£µÚ6~8Ðж¨ÒåµÄ×Ó³ÌÐòprintval¿É±»ÆäËü³ÌÐò»ò×Ó³ÌÐòµ÷Óá£printvalÊä³ö±äÁ¿$valtoprintµÄÖµ£¬´Ë±äÁ¿½öÔÚ°üprivpackÖж¨ÒåºÍʹÓᣵÚ15¡¢16ÐÐÈ·±£Æä±»ÆäËü³ÌÐòÓÃrequireÓï¾ä°üº¬ºó¹¤×÷Õý³££¬15Ðн«µ±Ç°°üÉèÖûØÈ±Ê¡°ümain£¬16Ðзµ»Ø·ÇÁãֵʹrequire²»±¨´í¡£
8¡¢°üºÍϵͳ±äÁ¿
ÏÂÁбäÁ¿¼´Ê¹´ÓÆäËü°üÖе÷Óã¬Ò²ÔÚmain°üÖÐÆð×÷Óãº
Îļþ±äÁ¿STDIN, STDOUT, STDERR ºÍ ARGV
±äÁ¿%ENV, %INC, @INC, $ARGV ºÍ @ARGV
ÆäËüº¬ÓÐÌØÊâ×Ö·ûµÄϵͳ±äÁ¿
9¡¢·ÃÎÊ·ûºÅ±í
ÔÚ³ÌÐòÖвéÕÒ·ûºÅ±í¿ÉÓÃÊý×é%_package£¬´Ë´¦packageΪÏë·ÃÎʵķûºÅ±íËùÊôµÄ°üÃû¡£ÀýÈç%_mainº¬ÓÐȱʡµÄ·ûºÅ±í¡£
ͨ³£²»ÐèÒªÇ××Ô²éÕÒ·ûºÅ±í¡£
Èý¡¢Ä£¿é
¶àÊý´óÐͳÌÐò¶¼·Ö¸î³É¶à¸ö²¿¼þ£¬Ã¿Ò»²¿¼þͨ³£º¬ÓÐÒ»¸ö»ò¶à¸ö×Ó³ÌÐò¼°Ïà¹ØµÄ±äÁ¿£¬Ö´ÐÐÌØ¶¨µÄÒ»¸ö»ò¶à¸öÈÎÎñ¡£¼¯ºÏÁ˱äÁ¿ºÍ×Ó³ÌÐòµÄ²¿¼þ³ÆÎª³ÌÐòÄ£¿é¡£
1¡¢´´½¨Ä£¿é
Perl 5ÖÐÓðüÀ´´´½¨Ä£¿é£¬·½·¨ÊÇ´´½¨°ü²¢½«Ö®´æÔÚͬÃûµÄÎļþÖС£ÀýÈ磬ÃûΪMymodultµÄ°ü´æÖüÔÚÎļþMymodult.pmÖУ¨À©Õ¹Ãû.pm±íʾPerl Module£©¡£ÏÂÀýµÄÄ£¿éMymodultº¬ÓÐ×Ó³ÌÐòmyfunc1ºÍmyfunc2¼°±äÁ¿$myvar1ºÍ$myvar2¡£
1 : #!/usr/local/bin/perl
2 :
3 : package Mymodule;
4 : require Exporter;
5 : @ISA = qw(Exporter);
6 : @EXPORT = qw(myfunc1 myfunc2);
7 : @EXPORT_OK = qw($myvar1 $myvar2);
8 :
9 : sub myfunc1 {
10: $myvar1 += 1;
11: }
12:
13: sub myfunc2 {
14: $myvar2 += 2;
15: }
µÚ3~7ÐÐÊDZê×¼µÄPerlÄ£¿é¶¨Ò巽ʽ¡£µÚ3Ðж¨Òå°ü£¬µÚ4Ðаüº¬ÄÚÖÃPerlÄ£¿éExporter£¬6¡¢7ÐнøÐÐ×Ó³ÌÐòºÍ±äÁ¿µÄÊä³öÒÔÓëÍâ½çÁªÏµ¡£µÚ6Ðд´½¨ÃûΪ@EXPORTµÄÌØÊâÊý×飬¸ÃÊý×éÖеÄ×Ó³ÌÐò¿ÉÒÔ±»ÆäËü³ÌÐòµ÷Óã¬ÕâÀmyfunc1ºÍmyfunc2¿ÉÒÔ±»·ÃÎÊ¡£ÆäËüÈκÎÔÚÄ£¿éÖж¨Ò嵫ûÓи³¸øÊý×é@EXPORTµÄ×Ó³ÌÐò¶¼ÊÇ˽Óеģ¬Ö»ÄÜÔÚÄ£¿éÄÚ²¿µ÷ÓᣵÚ7Ðд´½¨ÁíÒ»¸öÃûΪ@EXPORT_OKµÄÌØÊâÊý×飬ÆäÖк¬Óпɱ»Íⲿ³ÌÐò·ÃÎʵıäÁ¿£¬ÕâÀﺬÓÐ$myvar1ºÍ$myvar2¡£
2¡¢µ¼ÈëÄ£¿é
½«Ä£¿éµ¼ÈëÄãµÄPerl³ÌÐòÖÐʹÓÃuseÓï¾ä£¬ÈçϾ䵼ÈëÁËMymoduleÄ£¿é£º
use Mymodule;
ÕâÑù£¬Ä£¿éMymoduleÖеÄ×Ó³ÌÐòºÍ±äÁ¿¾Í¿ÉÒÔʹÓÃÁË¡£
È¡Ïûµ¼ÈëÄ£¿éʹÓÃnoÓï¾ä£¬ÈçϾäÈ¡ÏûÁËMymoduleÄ£¿éµÄµ¼È룺
no Mymodule;
ÏÂÃæ¿´Ò»¸öµ¼ÈëÄ£¿éºÍÈ¡Ïûµ¼ÈëµÄÀý×Ó£¬Ê¹ÓÃintegerÄ£¿éÒªÇóËùÓÐÊý×ÖÔËËã»ùÓÚÕûÊý£¬¸¡µãÊýÔÚÔËËãǰ¾ù±»×ª»¯ÎªÕûÊý¡£
1: #!/usr/local/bin/perl
2:
3: use integer;
4: $result = 2.4 + 2.4;
5: print ("$result\n");
6:
7: no integer;
8: $result = 2.4 + 2.4;
9: print ("$result\n");
³ÌÐòÊä³öÈçÏ£º
$ program
4
4.8
$
Èç¹ûuse»ònoÓï¾ä³öÏÖÔÚÓï¾ä¿éÖУ¬ÔòÖ»ÔڸÿéµÄÓÐЧ·¶Î§ÄÚÆð×÷Óã¬È磺
use integer;
$result1 = 2.4 + 2.4;
if ($result1 == 4) {
no integer;
$result2 = 3.4 + 3.4;
}
$result3 = 4.4 + 4.4;
½á¹ûÊä³öÈçÏ£º
4
6.8
8
ÕâÀnoÓï¾äÖ»ÔÚifÓï¾äÖÐÓÐЧ£¬³öÁËifÓï¾äÈÔʹÓÃintegerÄ£¿é£¬Òò´Ë4.4ÔÚ×ö¼Ó·¨Ç°±»×ª»¯³ÉÁË4¡£
3¡¢Ô¤¶¨ÒåÄ£¿é
Perl 5ÌṩÁËÐí¶àÓÐÓõÄÔ¤¶¨ÒåÄ£¿é£¬¿ÉÒÔÓÃuseµ¼ÈëºÍnoÓï¾äÈ¡Ïû¡£ÏÂÃæÊÇ¿âÖÐ×îÓÐÓõÄһЩģ¿é£º
| integer |
ʹÓÃÕûÊýÔËËã |
| Diagnostics |
Êä³ö½Ï¶àµÄÕï¶ÏÐÅÏ¢£¨¾¯¸æ£© |
| English |
ÔÊÐíÓ¢ÎÄÃûÓÃ×÷ϵͳ±äÁ¿µÄ±ðÃû |
| Env |
µ¼Èë»·¾³±äÁ¿µÄPerlÄ£¿é |
| POSIX |
POSIX±ê×¼£¨IEEE 1003.1£©µÄPerl½Ó¿Ú |
| Socket |
×°ÔØCÓïÑÔµÄÌ×½Ó×Ö´¦Àí»úÖÆ |
PerlÎĵµÖÐÓÐÍêÕûµÄÔ¤¶¨ÒåÄ£¿éÁÐ±í¡£
×¢£ºÊÀ½ç¸÷µØµÄPerl 5Óû§Ð´ÁËÐí¶àÓÐÓõÄÄ£¿é£¬CPAN(Comprehensive Perl Archive Network)µÄPerlÎĵµÓÐÆäÍêÕûµÄÁÐ±í¡£¹ØÓÚCPANµÄ¸ü¶àÐÅÏ¢¼ûÆäÍøÖ·£ºhttp://www.perl.com/perl/CPAN/README.html¡£
ÉÏÒ»Õ ÏÂÒ»Õ Ŀ¼
|
|