| ²é¿´: 1633 | »Ø¸´: 8 | |||||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||||
miRNAÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
|
[½»Á÷]
perl 5 ½Ì³Ì Á¬ÔØ
|
||||
|
µÚÒ»Õ ¸ÅÊö Ò»¡¢PerlÊÇʲô? £ £ PerlÊÇPractical Extraction and Report LanguageµÄËõд£¬ËüÊÇÓÉLarry WallÉè¼ÆµÄ£¬²¢ÓÉËû²»¶Ï¸üкÍά»¤£¬ÓÃÓÚÔÚUNIX»·¾³Ï±à³Ì¡£ £ £ .Perl¾ßÓи߼¶ÓïÑÔ£¨ÈçC£©µÄÇ¿´óÄÜÁ¦ºÍÁé»îÐÔ¡£ÊÂʵÉÏ£¬Ä㽫¿´µ½£¬ËüµÄÐí¶àÌØÐÔÊÇ´ÓCÓïÑÔÖнèÓÃÀ´µÄ¡£ £ £ .Óë½Å±¾ÓïÑÔÒ»Ñù£¬Perl²»ÐèÒª±àÒëÆ÷ºÍÁ´½ÓÆ÷À´ÔËÐдúÂ룬ÄãÒª×öµÄÖ»ÊÇд³ö³ÌÐò²¢¸æËßPerlÀ´ÔËÐжøÒÑ¡£ÕâÒâζ×ÅPerl¶ÔÓÚСµÄ±à³ÌÎÊÌâµÄ¿ìËÙ½â¾ö·½°¸ºÍΪ´óÐÍʼþ´´½¨ÔÐÍÀ´²âÊÔDZÔڵĽâ¾ö·½°¸ÊÇÊ®·ÖÀíÏëµÄ¡£ £ £ .PerlÌṩ½Å±¾ÓïÑÔ£¨ÈçsedºÍawk£©µÄËùÓй¦ÄÜ£¬»¹¾ßÓÐËüÃÇËù²»¾ß±¸µÄºÜ¶à¹¦ÄÜ¡£Perl»¹Ö§³Ösedµ½Perl¼°awdµ½PerlµÄ·ÒëÆ÷¡£ £ £ ¼ò¶øÑÔÖ®£¬PerlÏóCÒ»ÑùÇ¿´ó£¬Ïóawk¡¢sedµÈ½Å±¾ÃèÊöÓïÑÔÒ»Ñù·½±ã¡£ ¶þ¡¢PerlÔÚÄÄÀï? £ £ Perlͨ³£Î»ÓÚ/usr/local/bin/perl»ò/usr/bin/perlÖС£Äã¿ÉÒÔÔÚInternetÓÃÄäÃûFTPÃâ·ÑµÃµ½Ëü£¬Èçftp://prep.ai.mit.edu/pub/gnu/perl-5.004.tar.gz¡£ £ £ °²×°¹ý³ÌΪ£º £ £ (1)½âѹ£º £ £ $gunzip perl-5.004.tar.gz £ £ $tar xvf - £ £ $make makefile £ £ (3)·ÅÖ㺠£ £ ½«±àÒëÉú³ÉµÄ¿ÉÖ´ÐÐÎļþ¿½±´µ½¿ÉÖ´ÐÐÎļþͨ³£ËùÔÚĿ¼£¬È磺 £ £ $copy £ £ ×¢£ºÕâÐèҪϵͳ¹ÜÀíԱȨÏÞ¡£ ±±ÃÀ µØÖ·Ä¿Â¼ ftp.netlabs.comIPµØÖ·£º192.94.48.152 Ŀ¼ /pub/outgoing/perl5.0 ftp.cis.ufl.eduIPµØÖ·£º 128.227.100.198 Ŀ¼ /pub/perl/src/5.0 ftp.uu.netIPµØÖ·£º 192.48.96.9 Ŀ¼ /languages/perl ftp.khoros.unm.eduIPµØÖ·£º 198.59.155.28 Ŀ¼ /pub/perl ftp.cbi.tamucc.eduIPµØÖ·£º 165.95.1.3 Ŀ¼ /pub/duff/Perl ftp.metronet.comIPµØÖ·£º 192.245.137.1 Ŀ¼ /pub/perl/sources genetics.upenn.eduIPµØÖ·£º 128.91.200.37 Ŀ¼ /perl5 Å·ÖÞ SiteLocation ftp.cs.ruu.nlIPµØÖ·£º 131.211.80.17 Ŀ¼ /pub/PERL/perl5.0/src ftp.funet.fiIPµØÖ·£º 128.214.248.6 Ŀ¼ /pub/languages/perl/ports/perl5 ftp.zrz.tu-berlin.deIPµØÖ·£º 130.149.4.40 Ŀ¼ /pub/unix/perl src.doc.ic.ac.ukIPµØÖ·£º 146.169.17.5 Ŀ¼ /packages/perl5 °ÄÖÞ SiteLocation sungear.mame.mu.oz.auIPµØÖ·£º 128.250.209.2 Ŀ¼ /pub/perl/src/5.0 ÄÏÃÀ SiteLocation ftp.inf.utfsm.clIPµØÖ·£º 146.83.198.3 Ŀ¼ /pub/gnu Èý¡¢ÔËÐÐ £ £ ÓÃÎı¾±à¼Æ÷±à¼ºÃÄãµÄPerl³ÌÐò£¬¼ÓÉÏ¿ÉÖ´ÐÐÊôÐÔ£º$chmod +x ×¢£ºÄãµÄ³ÌÐòµÄµÚÒ»ÐбØÐëΪ#!/usr/local/bin/perl£¨perlËùÔÚλÖã©¡£ ËÄ¡¢×¢ÊÍ£º £ £ ×¢Ê͵ķ½·¨ÎªÔÚÓï¾äµÄ¿ªÍ·ÓÃ×Ö·û#£¬È磺 £ £ # this line is a comment £ £ ×¢£º½¨Òé¾³£Ê¹ÓÃ×¢ÊÍʹÄãµÄ³ÌÐòÒ×¶Á£¬ÕâÊǺõıà³Ìϰ¹ß¡£ µÚ¶þÕ ¼òµ¥±äÁ¿ »ù±¾ÉÏ£¬¼òµ¥±äÁ¿¾ÍÊÇÒ»¸öÊý¾Ýµ¥Ôª£¬Õâ¸öµ¥Ôª¿ÉÒÔÊÇÊý×Ö»ò×Ö·û´®¡£ Ò»¡¢ÕûÐÍ 1¡¢ÕûÐÍ PERL×î³£Óõļòµ¥±äÁ¿£¬ÓÉÓÚÆäÓëÆäËüÓïÑÔ»ù±¾Ïàͬ£¬²»ÔÙ׸Êö¡£ £ Àý£º £ $x = 12345; £ if (1217 + 116 == 1333) { £ # statement block goes here £ } ÕûÐ͵ÄÏÞÖÆ£º £ PERLʵ¼ÊÉϰÑÕûÊý´æÔÚÄãµÄ¼ÆËã»úÖеĸ¡µã¼Ä´æÆ÷ÖУ¬ËùÒÔʵ¼ÊÉϱ»µ±×÷¸¡µãÊý¿´´ý¡£ÔÚ¶àÊý¼ÆËã»úÖУ¬¸¡µã¼Ä´æÆ÷¿ÉÒÔ´æÖüÔ¼16λÊý×Ö£¬³¤Óڴ˵ı»¶ªÆú¡£ÕûÊýʵΪ¸¡µãÊýµÄÌØÀý¡£ 2¡¢8½øÖƺÍ16½øÖÆÊý 8½øÖÆÒÔ0´òÍ·£¬16½øÖÆÒÔ0x´òÍ·¡£ Àý£º$var1 = 047; (µÈÓÚÊ®½øÖƵÄ39) $var2 = 0x1f; (µÈÓÚÊ®½øÖƵÄ31) ¶þ¡¢¸¡µãÊý Èç 11.4 ¡¢ -0.3 ¡¢.3 ¡¢ 3. ¡¢ 54.1e+02 ¡¢ 5.41e03 ¸¡µã¼Ä´æÆ÷ͨ³£²»Äܾ«È·µØ´æÖü¸¡µãÊý£¬´Ó¶ø²úÉúÎó²î£¬ÔÚÔËËãºÍ±È½ÏÖÐÒªÌØ±ð×¢Òâ¡£Ö¸ÊýµÄ·¶Î§Í¨³£Îª-309µ½+308¡£ Àý£º #!/usr/local/bin/perl $value = 9.01e+21 + 0.01 - 9.01e+21; print ("first value is ", $value, "\n" ; $value = 9.01e+21 - 9.01e+21 + 0.01; print ("second value is ", $value, "\n" ; --------------------------------------------------------- $ program3_3 first value is 0 second value is 0.01 Èý¡¢×Ö·û´® ¹ßÓÃCµÄ³ÌÐòԱҪעÒ⣬ÔÚPERLÖУ¬×Ö·û´®µÄĩβ²¢²»º¬ÓÐÒþº¬µÄNULL×Ö·û£¬NULL×Ö·û¿ÉÒÔ³öÏÖÔÚ´®µÄÈκÎλÖᣠ. Ë«ÒýºÅÄÚµÄ×Ö·û´®ÖÐÖ§³Ö¼òµ¥±äÁ¿Ìæ»»£¬ÀýÈ磺 $number = 11; $text = "This text contains the number $number."; Ôò$textµÄÄÚÈÝΪ£º"This text contains the number 11." .Ë«ÒýºÅÄÚµÄ×Ö·û´®ÖÐÖ§³ÖתÒå×Ö·û Table 3.1. Escape sequences in strings. Escape SequenceDescription \aBell (beep) \bBackspace \cnThe Ctrl+n character \eEscape \EEnds the effect of \L, \U or \Q \fForm feed \lForces the next letter into lowercase \LAll following letters are lowercase \nNewline \rCarriage return \QDo not look for special pattern characters \tTab \uForce next letter into uppercase \UAll following letters are uppercase \vVertical tab \L¡¢\U¡¢\Q¹¦ÄÜ¿ÉÒÔÓÉ\E¹Ø±Õµô£¬È磺 $a = "T\LHIS IS A \ESTRING"; # same as "This is a STRING" .ÒªÔÚ×Ö·û´®Öаüº¬Ë«ÒýºÅ»ò·´Ð±Ïߣ¬ÔòÔÚÆäǰ¼ÓÒ»¸ö·´Ð±Ïߣ¬·´Ð±Ïß»¹¿ÉÒÔÈ¡Ïû±äÁ¿Ìæ»»£¬È磺 $res = "A quote \" and A backslash \\"; $result = 14; print ("The value of \$result is $result.\n" µÄ½á¹ûΪ£º The value of $result is 14. .¿ÉÓÃ\nnn(8½øÖÆ)»ò\xnn(16½øÖÆ)À´±íʾASCII×Ö·û£¬È磺 $result = "\377"; # this is the character 255,or EOF $result = "\xff"; # this is also 255 .µ¥ÒýºÅ×Ö·û´® µ¥ÒýºÅ×Ö·û´®ÓëË«ÒýºÅ×Ö·û´®ÓÐÁ½¸öÇø±ð£¬Ò»ÊÇûÓбäÁ¿Ìæ»»¹¦ÄÜ£¬¶þÊÇ·´Ð±Ïß²»Ö§³ÖתÒå×Ö·û£¬¶øÖ»ÔÚ°üº¬µ¥ÒýºÅºÍ·´Ð±ÏßʱÆð×÷Óᣵ¥ÒýºÅÁíÒ»¸öÌØÐÔÊÇ¿ÉÒÔ¿ç¶àÐУ¬È磺 $text = 'This is two lines of text '; ÓëϾäµÈЧ£º $text = "This is two\nlines of text\n"; .×Ö·û´®ºÍÊýÖµµÄ»¥Ïàת»» Àý1£º $string = "43"; $number = 28; $result = $string + $number; # $result = 71 Èô×Ö·û´®Öк¬ÓзÇÊý×ÖµÄ×Ö·û£¬Ôò´Ó×óÆðÖÁµÚÒ»¸ö·ÇÊý×ÖµÄ×Ö·û£¬È磺 $result = "hello" * 5; # $result = 0 $result = "12a34" +1; # $result = 13 .±äÁ¿³õʼֵ ÔÚPERLÖУ¬ËùÓеļòµ¥±äÁ¿¶¼ÓÐȱʡ³õʼֵ£º""£¬¼´¿Õ×Ö·û¡£µ«Êǽ¨Ò鏸ËùÓбäÁ¿¸³³õÖµ£¬·ñÔòµ±³ÌÐò±äµÃ´ó¶ø¸´ÔӺ󣬺ÜÈÝÒ׳öÏÖ²»¿ÉÔ¤ÁÏÇÒºÜÄѵ÷ÊԵĴíÎó¡££¨Î´Í꣩ [ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-12 at 08:31 ] |
» ÊÕ¼±¾ÌûµÄÌÔÌûר¼ÍƼö
ÏȽø²ÄÁÏÓë·Ö×ÓÄ£Äâ | perlÓïÑÔרÀ¸ |
» ²ÂÄãϲ»¶
293Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
070300»¯Ñ§319Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
268Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
301Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
0703»¯Ñ§336·ÖÇóµ÷¼Á
ÒѾÓÐ5È˻ظ´
301Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
²ÄÁÏר˶306Ó¢Ò»Êý¶þ
ÒѾÓÐ9È˻ظ´
304Çóµ÷¼Á
ÒѾÓÐ8È˻ظ´
²ÄÁϹ¤³Ìר˶µ÷¼Á
ÒѾÓÐ5È˻ظ´
344Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´

miRNA
ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 16.6
- ½ð±Ò: 13289.9
- ºì»¨: 4
- Ìû×Ó: 4967
- ÔÚÏß: 10.3Сʱ
- ³æºÅ: 56231
- ×¢²á: 2005-01-07
- רҵ: ½ðÊôÓлú»¯Ñ§
¡ï
yuefour(½ð±Ò+1):ÐÁ¿àÁË
yuefour(½ð±Ò+1):ÐÁ¿àÁË
|
µÚÈýÕ ²Ù×÷·û Ò»¡¢ËãÊõ²Ù×÷·û £º+(¼Ó)¡¢-(¼õ)¡¢*(³Ë)¡¢/(³ý)¡¢**(³ËÃÝ)¡¢%(È¡Óà)¡¢-(µ¥Ä¿¸º) (1)³ËÃݵĻùÊý²»ÄÜΪ¸º£¬Èç (-5) ** 2.5 # error£» (2)³ËÃݽá¹û²»Äܳ¬³ö¼ÆËã»ú±íʾµÄÏÞÖÆ£¬Èç10 ** 999999 # error (3)È¡ÓàµÄ²Ù×÷ÊýÈç²»ÊÇÕûÊý£¬ËÄÉáÎåÈë³ÉÕûÊýºóÔËË㣻ÔËËã·ûÓҲ಻ÄÜΪÁã (4)µ¥Ä¿¸º¿ÉÓÃÓÚ±äÁ¿£º - $y ; # µÈЧÓÚ $y * -1 ¶þ¡¢ÕûÊý±È½Ï²Ù×÷·û Table 3.1. ÕûÊý±È½Ï²Ù×÷·û ²Ù×÷·ûÃèÊö <СÓÚ >´óÓÚ ==µÈÓÚ <=СÓÚµÈÓÚ >=´óÓÚµÈÓÚ !=²»µÈÓÚ <=>±È½Ï£¬·µ»Ø 1, 0, or -1 ²Ù×÷·û<=>½á¹ûΪ£º 0 - Á½¸öÖµÏàµÈ 1 - µÚÒ»¸öÖµ´ó 1 - µÚ¶þ¸öÖµ´ó Èý¡¢×Ö·û´®±È½Ï²Ù×÷·û Table 3.2. ×Ö·û´®±È½Ï²Ù×÷·û ²Ù×÷·ûÃèÊö¡¡ lt СÓÚ¡¡ gt ´óÓÚ¡¡ eq µÈÓÚ¡¡ le СÓÚµÈÓÚ¡¡ ge ´óÓÚµÈÓÚ¡¡ ne ²»µÈÓÚ¡¡ cmp ±È½Ï£¬·µ»Ø 1, 0, or -1¡¡ ËÄ¡¢Âß¼²Ù×÷·û Âß¼»ò£º$a || $b »ò $a or $b Âß¼Ó룺$a && $b »ò $a and $b Âß¼·Ç£º! $a »ò not $a Âß¼Òì»ò£º$a xor $b Î塢λ²Ù×÷·û λÓ룺& λ»ò£º| λ·Ç£º~ λÒì»ò£º^ ×óÒÆ£º$x << 1 ÓÒÒÆ£º$x >> 2 ×¢£º²»Òª½«&ÓÃÓÚ¸ºÕûÊý£¬ÒòΪPERL½«»á°ÑËüÃÇת»¯ÎªÎÞ·ûºÅÊý¡£ Áù¡¢¸³Öµ²Ù×÷·û Table 3.3. ¸³Öµ²Ù×÷·û ²Ù×÷·ûÃèÊö =Assignment only +=Addition and assignment -=Subtraction and assignment *=Multiplication and assignment /=Division and assignment %=Remainder and assignment **=Exponentiation and assignment &=Bitwise AND and assignment |=Bitwise OR and assignment ^=Bitwise XOR and assignment Table 3.4. ¸³Öµ²Ù×÷·ûÀý×Ó ±í´ïʽµÈЧ±í´ïʽ $a = 1; none (basic assignment) $a -= 1; $a = $a - 1; $a *= 2; $a = $a * 2; $a /= 2; $a = $a / 2; $a %= 2; $a = $a % 2; $a **= 2; $a = $a ** 2; $a &= 2; $a = $a & 2; $a |= 2; $a = $a | 2; $a ^= 2; $a = $a ^ 2; .=¿ÉÔÚÒ»¸ö¸³ÖµÓï¾äÖгöÏÖ¶à´Î£¬È磺 $value1 = $value2 = "a string"; .=×÷Ϊ×Ó±í´ïʽ ($a = $b) += 3; µÈ¼ÛÓÚ $a = $b; $a += 3; µ«½¨Ò鲻ҪʹÓÃÕâÖÖ·½Ê½¡£ Æß¡¢×ÔÔö×Ô¼õ²Ù×÷·û £º++¡¢--(ÓëC++ÖеÄÓ÷¨Ïàͬ) .²»ÒªÔÚ±äÁ¿Á½±ß¶¼Ê¹ÓôËÖÖ²Ù×÷·û£º++$var-- # error .²»ÒªÔÚ±äÁ¿×ÔÔö/¼õºóÔÚͬһ±í´ïʽÖÐÔÙ´ÎʹÓãº$var2£ = $var1 + ++$var1; # error .ÔÚPERLÖÐ++¿ÉÓÃÓÚ×Ö·û´®£¬µ«µ±½áβ×Ö·ûΪ'z'¡¢'Z'¡¢'9'ʱ½øÎ»£¬È磺 $stringvar = "abc"; $stringvar++; # $stringvar contains "abd" now $stringvar = "aBC"; $stringvar++; # $stringvar contains "aBD" now $stringvar = "abz"; $stringvar++; # $stringvar now contains "aca" $stringvar = "AGZZZ"; $stringvar++; # $stringvar now contains "AHAAA" $stringvar = "ab4"; $stringvar++; # $stringvar now contains "ab5" $stringvar = "bc999"; $stringvar++; # $stringvar now contains "bd000" .²»ÒªÊ¹ÓÃ--£¬PERL½«ÏȽ«×Ö·û´®×ª»»ÎªÊý×ÖÔÙ½øÐÐ×Ô¼õ $stringvar = "abc"; $stringvar--; # $stringvar = -1 now .Èç¹û×Ö·û´®Öк¬ÓзÇ×ÖĸÇÒ·ÇÊý×ÖµÄ×Ö·û£¬»òÊý×ÖλÓÚ×ÖĸÖУ¬Ôò¾¹ý++ÔËËãǰֵת»»ÎªÊý×ÖÁ㣬Òò´Ë½á¹ûΪ1£¬È磺 $stringvar = "ab*c"; $stringvar++; $stringvar = "ab5c"; $stringvar++; °Ë¡¢×Ö·û´®Áª½áºÍÖØ¸´²Ù×÷·û Áª½Ó: . ÖØ¸´£ºx Áª½ÓÇÒ¸³Öµ(ÀàËÆ+=)£º .= Àý£º $newstring = "potato" . "head"; $newstring = "t" x 5; $a = "be"; $a .= "witched"; # $a is now "bewitched" ¾Å¡¢¶ººÅ²Ù×÷·û ÆäÇ°ÃæµÄ±í´ïʽÏȽøÐÐÔËË㣬È磺 $var1 += 1, $var2 = $var1; µÈ¼ÛÓÚ $var1 += 1; $var2 = $var1; ʹÓô˲Ù×÷·ûµÄΨһÀíÓÉÊÇÌá¸ß³ÌÐòµÄ¿É¶ÁÐÔ£¬½«¹ØÏµÃÜÇеÄÁ½¸ö±í´ïʽ½áºÏÔÚÒ»Æð£¬È磺 $val = 26; $result = (++$val, $val + 5); # $result = 32 ×¢ÒâÈç¹û´Ë´¦Ã»ÓÐÀ¨ºÅÔòÒâÒ岻ͬ£º $val = 26; $result = ++$val, $val + 5; # $result = 27 Ê®¡¢Ìõ¼þ²Ù×÷·û ÓëCÖÐÀàËÆ£¬Ìõ¼þ?Öµ1:Öµ2£¬µ±Ìõ¼þÎªÕæÊ±È¡Öµ1£¬Îª¼Ùʱȡֵ2£¬È磺 $result = $var == 0 ? 14 : 7; $result = 43 + ($divisor == 0 ? 0 : $dividend / $divisor); PERL 5ÖУ¬»¹¿ÉÒÔÔÚ¸³ÖµÊ½×ó±ßʹÓÃÌõ¼þ²Ù×÷·ûÀ´Ñ¡Ôñ±»¸³ÖµµÄ±äÁ¿£¬È磺 $condvar == 43 ? $var1 : $var2 = 14; $condvar == 43 ? $var1 = 14 : $var2 = 14; ʮһ¡¢²Ù×÷·ûµÄ´ÎÐò Table 3.6. ²Ù×÷·û´ÎÐò ²Ù×÷·ûÃèÊö ++, -- ×ÔÔö£¬×Ô¼õ -, ~, ! µ¥Ä¿ ** ³Ë·½ =~, !~ ģʽƥÅä *, /, %, x ³Ë£¬³ý£¬È¡Óà£¬ÖØ¸´ +, -, . ¼Ó£¬¼õ£¬Áª½Ó <<, >> ÒÆÎ» -e, -r, etc. Îļþ״̬ <, <=, >, >=, lt, le, gt, ge ²»µÈ±È½Ï ==, !=, <=>, eq, ne, cmp ÏàµÈ±È½Ï & λÓë |, ^ λ»ò£¬Î»Òì»ò && Âß¼Óë || Âß¼»ò .. ÁÐ±í·¶Î§ ? and : Ìõ¼þ²Ù×÷·û =, +=, -=, *=, ¸³Öµ and so on¡¡ ,¶ººÅ²Ù×÷·û not Low-precedence logical NOT and Low-precedence logical AND or, xor Low-precedence logical OR and XOR .²Ù×÷·û½áºÏÐÔ(associativity)£º Table 3.7. ²Ù×÷·û½áºÏÐÔ ²Ù×÷·û½áºÏÐÔ ++, -- ÎÞ -, ~, ! Right-to-left ** Right-to-left =~, !~ Left-to-right *, /, %, x Left-to-right +, -, . Left-to-right <<, >> Left-to-right -e, -r, ÎÞ <, <=, >, >=, lt, le, gt, ge Left-to-right ==, !=, <=>, eq, ne, cmp Left-to-right & Left-to-right |, ^ Left-to-right && Left-to-right || Left-to-right .. Left-to-right ? and : Right-to-left =, +=, -=, *=, Right-to-left and so on¡¡ ,Left-to-right not Left-to-right and Left-to-right or, xor Left-to-right ½¨Ò飺 1¡¢µ±Ä㲻ȷ¶¨Ä³²Ù×÷·ûÊÇ·ñÏÈÖ´ÐÐʱ£¬Ò»¶¨ÒªÓÃÀ¨ºÅÃ÷È·Ö®¡£ 2¡¢ÓöàÐС¢¿Õ¸ñµÈ·½Ê½Ìá¸ß³ÌÐòµÄ¿É¶ÁÐÔ¡£ µÚËÄÕ ÁбíºÍÊý×é±äÁ¿ Ò»¡¢Áбí ÁбíÊǰüº¬ÔÚÀ¨ºÅÀïµÄÒ»ÐòÁеÄÖµ£¬¿ÉÒÔΪÈκÎÊýÖµ£¬Ò²¿ÉΪ¿Õ£¬È磺(1, 5.3 , "hello" , 2)£¬¿ÕÁÐ±í£º()¡£ ×¢£ºÖ»º¬ÓÐÒ»¸öÊýÖµµÄÁбí(È磺(43.2) )Óë¸ÃÊýÖµ±¾Éí(¼´£º43.2 )ÊDz»Í¬µÄ£¬µ«ËüÃÇ¿ÉÒÔ»¥Ïàת»¯»ò¸³Öµ¡£ ÁбíÀý£º £ (17, $var, "a string" £ (17, 26 << 2) £ (17, $var1 + $var2) £ ($value, "The answer is $value" ¶þ¡¢Êý×é--ÁбíµÄ´æÖü ÁÐ±í´æÖüÓÚÊý×é±äÁ¿ÖУ¬Óë¼òµ¥±äÁ¿²»Í¬£¬Êý×é±äÁ¿ÒÔ×Ö·û"@"´òÍ·£¬È磺 £ @array = (1, 2, 3); ×¢£º (1)Êý×é±äÁ¿´´½¨Ê±³õʼֵΪ¿ÕÁÐ±í£º()¡£ (2)ÒòΪPERLÓÃ@ºÍ$À´Çø·ÖÊý×é±äÁ¿ºÍ¼òµ¥±äÁ¿£¬ËùÒÔͬһ¸öÃû×Ö¿ÉÒÔͬʱÓÃÓÚÊý×é±äÁ¿ºÍ¼òµ¥±äÁ¿£¬È磺 £ $var = 1; £ @var = (11, 27.1 , "a string" ; µ«ÕâÑùºÜÈÝÒ×»ìÏý£¬¹Ê²»ÍƼö¡£ 1¡¢Êý×éµÄ´æÈ¡ .¶ÔÊý×éÖеÄֵͨ¹ýÏÂ±ê´æÈ¡£¬µÚÒ»¸öÔªËØÏ±êΪ0¡£ÊÔͼ·ÃÎʲ»´æÔÚµÄÊý×éÔªËØ£¬Ôò½á¹ûΪNULL£¬µ«Èç¹û¸ø³¬³öÊý×é´óСµÄÔªËØ¸³Öµ£¬ÔòÊý×é×Ô¶¯Ôö³¤£¬ÔÀ´Ã»ÓеÄÔªËØÖµÎªNULL¡£È磺 £ @array = (1, 2, 3, 4); £ $scalar = $array[0]; £ $array[3] = 5; # now @array is (1,2,3,5) £ $scalar = $array[4]; # now $scalar = null; £ $array[6] = 17; # now @array is (1,2,3,5,"","",17) .Êý×é¼ä¿½±´ £ @result = @original; .ÓÃÊý×鏸ÁÐ±í¸³Öµ £ @list1 = (2, 3, 4); £ @list2 = (1, @list1, 5); # @list2 = (1, 2, 3, 4, 5) .Êý×é¶Ô¼òµ¥±äÁ¿µÄ¸³Öµ £ (1) @array = (5, 7, 11); £ ($var1, $var2) = @array; # $var1 = 5, $var2 = 7, 11±»ºöÂÔ £ (2) @array = (5, 7); £ ($var1, $var2, $var3) = @array; # $var1 = 5, $var2 = 7, $var3 ="" (null) .´Ó±ê×¼ÊäÈë(STDIN)¸ø±äÁ¿¸³Öµ £ $var = £ @array = 2 ¡¢×Ö·û´®Öеķ½À¨ºÅºÍ±äÁ¿Ìæ»» £ "$var[0]" ΪÊý×é@varµÄµÚÒ»¸öÔªËØ¡£ £ "$var\[0]" ½«×Ö·û"["תÒ壬µÈ¼ÛÓÚ"$var". "[0]"£¬$var±»±äÁ¿Ìæ»»£¬[0]±£³Ö²»±ä¡£ £ "$[0]" ÒàµÈ¼ÛÓÚ"$var" ."[0]"¡£ £ "$\"ÔòÈ¡ÏûÁË´óÀ¨ºÅµÄ±äÁ¿Ìæ»»¹¦ÄÜ£¬°üº¬ÎÄ×Ö£º$. 3¡¢ÁÐ±í·¶Î§£º £ (1..10) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) £ (2, 5..7, 11) = (2, 5, 6, 7, 11) £ (3..3) = (3) .ÓÃÓÚʵÊý £ (2.1..5.3) = (2.1, 3.1 ,4.1, 5.1) £ (4.5..1.6) = () .ÓÃÓÚ×Ö·û´® £ ("aaa".."aad" = ("aaa","aab", "aac", "aad" £ @day_of_month = ("01".."31" .¿É°üº¬±äÁ¿»ò±í´ïʽ £ ($var1..$var2+5) .С¼¼ÇÉ£º £ $fred = "Fred"; £ print (("Hello, " . $fred . "!\n" x 2); Æä½á¹ûΪ£º £ Hello, Fred! £ Hello, Fred! 4¡¢Êý×éµÄÊä³ö£º (1) @array = (1, 2, 3); £ print (@array, "\n" ; ½á¹ûΪ£º £ 123 (2) @array = (1, 2, 3); £ print ("@array\n" ; ½á¹ûΪ£º £ 1 2 3 5¡¢Áбí/Êý×éµÄ³¤¶È µ±Êý×é±äÁ¿³öÏÖÔÚÔ¤ÆÚ¼òµ¥±äÁ¿³öÏֵĵط½£¬ÔòPERL½âÊÍÆ÷È¡Æä³¤¶È¡£ £ @array = (1, 2, 3); £ $scalar = @array; # $scalar = 3,¼´@arrayµÄ³¤¶È £ ($scalar) = @array; # $scalar = 1,¼´@arrayµÚÒ»¸öÔªËØµÄÖµ ×¢£ºÒÔÊý×éµÄ³¤¶ÈΪѻ·´ÎÊý¿ÉÈçϱà³Ì£º £ $count = 1; £ while ($count <= @array) { £ print ("element $count: $array[$count-1]\n" ; £ $count++; £ } 6¡¢×ÓÊý×é £ @array = (1, 2, 3, 4, 5); £ @subarray = @array[0,1]; # @subarray = (1, 2) £ @subarray2 = @array[1..3]; # @subarray2 = (2,3,4) £ @array[0,1] = ("string", 46); # @array =("string",46,3,4,5) now £ @array[0..3] = (11, 22, 33, 44); # @array = (11,22,33,44,5) now £ @array[1,2,3] = @array[3,2,4]; # @array = (11,44,33,5,5) now £ @array[0..2] = @array[3,4]; # @array = (5,5,"",5,5) now ¿ÉÒÔÓÃ×ÓÊý×éÐÎʽÀ´½»»»ÔªËØ£º £ @array[1,2] = @array[2,1]; 7¡¢ÓйØÊý×éµÄ¿âº¯Êý (1)sort--°´×Ö·û˳ÐòÅÅÐò £ @array = ("this", "is", "a","test" ; £ @array2 = sort(@array); # @array2 = ("a","is", "test", "this" £ @array = (70, 100, 8); £ @array = sort(@array); # @array = (100, 70, 8) now ( 2)reverse--·´×ªÊý×é £ @array2 = reverse(@array); £ @array2 = reverse sort (@array); (3)chop--Êý×éȥβ £ chopµÄÒâÒåÊÇÈ¥µôSTDIN£¨¼üÅÌ£©ÊäÈë×Ö·û´®Ê±×îºóÒ»¸ö×Ö·û--»»Ðзû¡£¶øÈç¹ûËü×÷Óõ½Êý×éÉÏ£¬Ôò½«Êý×éÖÐÿһ¸öÔªËØ¶¼×öÈç´Ë´¦Àí¡£ £ @list = ("rabbit", "12345","quartz" ; £ chop (@list); # @list = ("rabbi", "1234","quart" now ( 4)join/split--Á¬½Ó/²ð·Ö £ joinµÄµÚÒ»¸ö²ÎÊýÊÇÁ¬½ÓËùÓõÄÖмä×Ö·û£¬ÆäÓàÔòΪ´ýÁ¬½ÓµÄ×Ö·ûÊý×é¡£ £ $string = join(" ", "this", "is","a", "string" ; # ½á¹ûΪ"this is a string" £ @list = ("words","and" ; £ $string = join("::", @list, "colons" ; #½á¹ûΪ"words::and::colons" £ @array = split(/::/,$string); # @array = ("words","and", "colons" now (δÍê) |

2Â¥2005-06-14 19:15:41
miRNA
ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 16.6
- ½ð±Ò: 13289.9
- ºì»¨: 4
- Ìû×Ó: 4967
- ÔÚÏß: 10.3Сʱ
- ³æºÅ: 56231
- ×¢²á: 2005-01-07
- רҵ: ½ðÊôÓлú»¯Ñ§
|
µÚÎåÕ Îļþ¶Áд Ò»¡¢´ò¿ª¡¢¹Ø±ÕÎļþ Ó﷨Ϊopen (filevar, filename)£¬ÆäÖÐfilevarΪÎļþ¾ä±ú£¬»òÕß˵ÊdzÌÐòÖÐÓÃÀ´´ú±íijÎļþµÄ´úºÅ£¬filenameΪÎļþÃû£¬Æä·¾¶¿ÉΪÏà¶Ô·¾¶£¬Òà¿ÉΪ¾ø¶Ô·¾¶¡£ £ open(FILE1,"file1"); £ open(FILE1, "/u/jqpublic/file1"); ´ò¿ªÎļþʱ±ØÐë¾ö¶¨·ÃÎÊģʽ£¬ÔÚPERLÖÐÓÐÈýÖÖ·ÃÎÊģʽ£º¶Á¡¢Ð´ºÍÌí¼Ó¡£ºóÁ½ÖÖģʽµÄÇø±ðÔÚÓÚдģʽ½«ÔÎļþ¸²¸Ç£¬ÔÓÐÄÚÈݶªÊ§£¬ÐÎʽΪ£ºopen(outfile,">outfile");¶øÌí¼ÓģʽÔòÔÚÔÎļþµÄĩβ´¦¼ÌÐøÌí¼ÓÄÚÈÝ£¬ÐÎʽΪ£ºopen(appendfile, ">>appendfile")¡£Òª×¢ÒâµÄÊÇ£¬²»ÄܶÔÎļþͬʱ½øÐжÁºÍд/Ìí¼Ó²Ù×÷¡£ openµÄ·µ»ØÖµÓÃÀ´È·¶¨´ò¿ªÎļþµÄ²Ù×÷ÊÇ·ñ³É¹¦£¬µ±Æä³É¹¦Ê±·µ»Ø·ÇÁãÖµ£¬Ê§°Üʱ·µ»ØÁ㣬Òò´Ë¿ÉÒÔÈçÏÂÅжϣº £ if (open(MYFILE, "myfile")) { £ # here's what to do if the file opened successfully £ } µ±Îļþ´ò¿ªÊ§°Üʱ½áÊø³ÌÐò£º £ unless (open (MYFILE, "file1")) { £ die ("cannot open input file file1\n"); £ } Òà¿ÉÓÃÂß¼»ò²Ù×÷·û±íʾÈçÏ£º £ open (MYFILE, "file1") || die ("Could not open file"); µ±Îļþ²Ù×÷Íê±Ïºó£¬ÓÃclose(MYFILE); ¹Ø±ÕÎļþ¡£ ¶þ¡¢¶ÁÎļþ Óï¾ä$line = Óï¾ä@array = Èý¡¢Ð´Îļþ ÐÎʽΪ£º £ open(OUTFILE, ">outfile"); £ print OUTFILE ("Here is an output line.\n"); ×¢£ºSTDOUT¡¢STDERRΪ±ê×¼Êä³öºÍ±ê×¼´íÎóÎļþ£¬Í¨³£ÎªÆÁÄ»£¬ÇÒ²»ÐèÒª´ò¿ª¡£ ËÄ¡¢ÅжÏÎļþ״̬ 1¡¢Îļþ²âÊÔ²Ù×÷·û Ó﷨Ϊ£º-op expr£¬È磺 £ if (-e "/path/file1") { £ print STDERR ("File file1 exists.\n"); £ } Îļþ²âÊÔ²Ù×÷·û ²Ù×÷·ûÃèÊö -bÊÇ·ñΪ¿éÉ豸 -c ÊÇ·ñΪ×Ö·ûÉ豸 -d ÊÇ·ñΪĿ¼ -e ÊÇ·ñ´æÔÚ -f ÊÇ·ñΪÆÕͨÎļþ -g ÊÇ·ñÉèÖÃÁËsetgidλ -k ÊÇ·ñÉèÖÃÁËstickyλ -l ÊÇ·ñΪ·ûºÅÁ´½Ó -o ÊÇ·ñÓµÓиÃÎļþ -p ÊÇ·ñΪ¹ÜµÀ -r ÊÇ·ñ¿É¶Á -s ÊÇ·ñ·Ç¿Õ -t ÊÇ·ñ±íʾÖÕ¶Ë -u ÊÇ·ñÉèÖÃÁËsetuidλ -w ÊÇ·ñ¿Éд -x ÊÇ·ñ¿ÉÖ´ÐÐ -z ÊÇ·ñΪ¿ÕÎļþ -A ¾àÉϴηÃÎʶ೤ʱ¼ä -B ÊÇ·ñΪ¶þ½øÖÆÎļþ -C ¾àÉϴηÃÎÊÎļþµÄinode¶à³¤Ê±¼ä -M ¾àÉÏ´ÎÐ޸Ķ೤ʱ¼ä -O ÊÇ·ñֻΪ¡°ÕæÕýµÄÓû§¡±ËùÓµÓÐ -R ÊÇ·ñÖ»ÓС°ÕæÕýµÄÓû§¡±¿É¶Á -S ÊÇ·ñΪsocket -T ÊÇ·ñΪÎı¾Îļþ -W ÊÇ·ñÖ»ÓÐ"ÕæÕýµÄÓû§"¿Éд -X ÊÇ·ñÖ»ÓÐ"ÕæÕýµÄÓû§"¿ÉÖ´ÐÐ ×¢£º¡°ÕæÕýµÄÓû§¡±Ö¸µÇ¼ʱָ¶¨µÄuserid£¬Ó뵱ǰ½ø³ÌÓû§IDÏà¶Ô£¬ÃüÁîsuid¿ÉÒԸıäÓÐЧÓû§ID¡£ Àý£º £ unless (open(INFILE, "infile")) { £ die ("Input file infile cannot be opened.\n"); £ } £ if (-e "outfile") { £ die ("Output file outfile already exists.\n"); £ } £ unless (open(OUTFILE, ">outfile")) { £ die ("Output file outfile cannot be opened.\n"); £ } µÈ¼ÛÓÚ £ open(INFILE, "infile") && !(-e "outfile") && £ open(OUTFILE, ">outfile") || die("Cannot open files\n"); Îå¡¢ÃüÁîÐвÎÊý ÏóCÒ»Ñù£¬PERLÒ²Óд洢ÃüÁîÐвÎÊýµÄÊý×é@ARGV£¬¿ÉÒÔÓÃÀ´·Ö±ð´¦Àí¸÷¸öÃüÁîÐвÎÊý£»ÓëC²»Í¬µÄÊÇ£¬$ARGV[0]ÊǵÚÒ»¸ö²ÎÊý£¬¶ø²»ÊdzÌÐòÃû±¾Éí¡£ £ $var = $ARGV[0]; # µÚÒ»¸ö²ÎÊý £ $numargs = @ARGV; # ²ÎÊýµÄ¸öÊý PERLÖУ¬<>²Ù×÷·ûʵ¼ÊÉÏÊǶÔÊý×é@ARGVµÄÒþº¬µÄÒýÓã¬Æä¹¤×÷ÔÀíΪ£º 1¡¢µ±PERL½âÊÍÆ÷µÚÒ»´Î¿´µ½<>ʱ£¬´ò¿ªÒÔ$ARGV[0]ΪÎļþÃûµÄÎļþ£» 2¡¢Ö´Ðж¯×÷shift(@ARGV); ¼´°ÑÊý×é@ARGVµÄÔªËØÏòÇ°ÒÆ¶¯Ò»¸ö£¬ÆäÔªËØÊýÁ¿¼´¼õÉÙÁËÒ»¸ö¡£ 3¡¢<>²Ù×÷·û¶ÁÈ¡ÔÚµÚÒ»²½´ò¿ªµÄÎļþÖеÄËùÓÐÐС£ 4¡¢¶ÁÍêºó£¬½âÊÍÆ÷»Øµ½µÚÒ»²½Öظ´¡£ Àý£º £ @ARGV = ("myfile1", "myfile2"); #ʵ¼ÊÉÏÓÉÃüÁîÐвÎÊý¸³Öµ £ while ($line = <>) { £ print ($line); £ } ½«°ÑÎļþmyfile1ºÍmyfile2µÄÄÚÈÝ´òÓ¡³öÀ´¡£ Áù¡¢´ò¿ª¹ÜµÀ ÓóÌÐòµÄÐÎʽҲ¿ÉÒÔÏóÃüÁîÐÐÒ»Ñù´ò¿ªºÍʹÓùܵÀ(ex:ls > tempfile)¡£ÈçÓï¾äopen (MYPIPE, "| cat >hello"); ´ò¿ªÒ»¸ö¹ÜµÀ£¬·¢Ë͵½MYPIPEµÄÊä³ö³ÉΪÃüÁî"cat >hello"µÄÊäÈë¡£ÓÉÓÚcatÃüÁÏÔʾÊäÈëÎļþµÄÄÚÈÝ£¬¹Ê¸ÃÓï¾äµÈ¼ÛÓÚopen(MYPIPE, ">hello"); ÓùܵÀ·¢ËÍÓʼþÈçÏ£º £ open (MESSAGE, "| mail dave"); £ print MESSAGE ("Hi, Dave! Your Perl program sent this!\n"); £ close (MESSAGE); µÚÁùÕ ģʽƥÅä Ò»¡¢¼ò½é £ ģʽָÔÚ×Ö·û´®ÖÐѰÕÒµÄÌØ¶¨ÐòÁеÄ×Ö·û£¬ÓÉ·´Ð±Ïß°üº¬£º/def/¼´Ä£Ê½def¡£ÆäÓ÷¨Èç½áºÏº¯Êýsplit½«×Ö·û´®ÓÃijģʽ·Ö³É¶à¸öµ¥´Ê£º@array = split(/ /, $line); ¶þ¡¢Æ¥Åä²Ù×÷·û =~¡¢!~ £ =~¼ìÑ鯥ÅäÊÇ·ñ³É¹¦£º$result = $var =~ /abc/;ÈôÔÚ¸Ã×Ö·û´®ÖÐÕÒµ½Á˸Ãģʽ£¬Ôò·µ»Ø·ÇÁãÖµ£¬¼´true£¬²»Æ¥ÅäÔò·µ»Ø0£¬¼´false¡£!~ÔòÏà·´¡£ £ ÕâÁ½¸ö²Ù×÷·ûÊÊÓÚÌõ¼þ¿ØÖÆÖУ¬È磺 £ if ($question =~ /please/) { £ £ print ("Thank you for being polite!\n"); £ } £ else { £ £ print ("That was not very polite!\n"); £ } Èý¡¢Ä£Ê½ÖеÄÌØÊâ×Ö·û £ PERLÔÚģʽÖÐÖ§³ÖÒ»Ð©ÌØÊâ×Ö·û£¬¿ÉÒÔÆðµ½Ò»Ð©ÌØÊâµÄ×÷Óᣠ1¡¢×Ö·û + £ +Òâζ×ÅÒ»¸ö»ò¶à¸öÏàͬµÄ×Ö·û£¬È磺/de+f/Ö¸def¡¢deef¡¢deeeeefµÈ¡£Ëü¾¡Á¿Æ¥Å価¿ÉÄܶàµÄÏàͬ×Ö·û£¬Èç/ab+/ÔÚ×Ö·û´®abbcÖÐÆ¥ÅäµÄ½«ÊÇabb£¬¶ø²»ÊÇab¡£ £ µ±Ò»ÐÐÖи÷µ¥´Ê¼äµÄ¿Õ¸ñ¶àÓÚÒ»¸öʱ£¬¿ÉÒÔÈçÏ·ָ £ £ @array = split (/ +/, $line); £ ×¢£ºsplitº¯Êýÿ´ÎÓöµ½·Ö¸îģʽ£¬×ÜÊÇ¿ªÊ¼Ò»¸öе¥´Ê£¬Òò´ËÈô$lineÒÔ¿Õ¸ñ´òÍ·£¬Ôò@arrayµÄµÚÒ»¸öÔªËØ¼´Îª¿ÕÔªËØ¡£µ«Æä¿ÉÒÔÇø·ÖÊÇ·ñÕæÓе¥´Ê£¬ÈçÈô$lineÖÐÖ»Óпոñ£¬Ôò@arrayÔòΪ¿ÕÊý×é¡£ÇÒÉÏÀýÖÐTAB×Ö·û±»µ±×÷Ò»¸öµ¥´Ê¡£×¢ÒâÐÞÕý¡£ 2¡¢×Ö·û []ºÍ[^] £ []Òâζ×ÅÆ¥ÅäÒ»×é×Ö·ûÖеÄÒ»¸ö£¬Èç/a[0123456789]c/½«Æ¥Åäa¼ÓÊý×Ö¼ÓcµÄ×Ö·û´®¡£Óë+ÁªºÏʹÓÃÀý£º/d[eE]+f/Æ¥Åädef¡¢dEf¡¢deef¡¢dEdf¡¢dEEEeeeEefµÈ¡£^±íʾ³ýÆäÖ®ÍâµÄËùÓÐ×Ö·û£¬È磺/d[^deE]f/Æ¥Åäd¼Ó·Çe×Ö·û¼ÓfµÄ×Ö·û´®¡£ 3¡¢×Ö·û *ºÍ? £ ËüÃÇÓë+ÀàËÆ£¬Çø±ðÔÚÓÚ*Æ¥Åä0¸ö¡¢1¸ö»ò¶à¸öÏàͬ×Ö·û£¬?Æ¥Åä0¸ö»ò1¸ö¸Ã×Ö·û¡£Èç/de*f/Æ¥Åädf¡¢def¡¢deeeefµÈ£»/de?f/Æ¥Åädf»òdef¡£ 4¡¢×ªÒå×Ö·û £ Èç¹ûÄãÏëÔÚģʽÖаüº¬Í¨³£±»¿´×÷ÌØÊâÒâÒåµÄ×Ö·û£¬ÐëÔÚÆäǰ¼ÓбÏß"\"¡£È磺/\*+/ÖÐ\*¼´±íʾ×Ö·û*£¬¶ø²»ÊÇÉÏÃæÌáµ½µÄÒ»¸ö»ò¶à¸ö×Ö·ûµÄº¬Ò塣бÏߵıíʾΪ/\\/¡£ÔÚPERL5ÖпÉÓÃ×Ö·û¶Ô\QºÍ\EÀ´×ªÒå¡£ 5¡¢Æ¥ÅäÈÎÒâ×Öĸ»òÊý×Ö £ ÉÏÃæÌᵽģʽ/a[0123456789]c/Æ¥Åä×Öĸa¼ÓÈÎÒâÊý×Ö¼ÓcµÄ×Ö·û´®£¬ÁíÒ»ÖÖ±íʾ·½·¨Îª£º/a[0-9]c/£¬ÀàËÆµÄ£¬[a-z]±íʾÈÎÒâСд×Öĸ£¬[A-Z]±íʾÈÎÒâ´óд×Öĸ¡£ÈÎÒâ´óСд×Öĸ¡¢Êý×ֵıíʾ·½·¨Îª£º/[0-9a-zA-Z]/¡£ 6¡¢ÃªÄ£Ê½ êÃèÊö ^ »ò \A½öÆ¥Åä´®Ê× $ »ò \Z½öÆ¥Å䴮β \bÆ¥Åäµ¥´Ê±ß½ç \Bµ¥´ÊÄÚ²¿Æ¥Åä £ Àý1£º/^def/ֻƥÅäÒÔdef´òÍ·µÄ×Ö·û´®£¬/$def/ֻƥÅäÒÔdef½áβµÄ×Ö·û´®£¬½áºÏÆðÀ´µÄ/^def$/ֻƥÅä×Ö·û´®def(?)¡£\AºÍ\ZÔÚ¶àÐÐÆ¥ÅäʱÓë^ºÍ$²»Í¬¡£ £ Àý2£º¼ìÑé±äÁ¿ÃûµÄÀàÐÍ£º £ £ if ($varname =~ /^\$[A-Za-z][_0-9a-zA-Z]*$/) { £ £ £ print ("$varname is a legal scalar variable\n"); £ £ } elsif ($varname =~ /^@[A-Za-z][_0-9a-zA-Z]*$/) { £ £ £ print ("$varname is a legal array variable\n"); £ £ } elsif ($varname =~ /^[A-Za-z][_0-9a-zA-Z]*$/) { £ £ £ print ("$varname is a legal file variable\n"); £ £ } else { £ £ £ print ("I don't understand what $varname is.\n"); £ } £ Àý3£º\bÔÚµ¥´Ê±ß½çÆ¥Å䣺/\bdef/Æ¥ÅädefºÍdefghiµÈÒÔdef´òÍ·µÄµ¥´Ê£¬µ«²»Æ¥Åäabcdef¡£/def\b/Æ¥ÅädefºÍabcdefµÈÒÔdef½áβµÄµ¥´Ê£¬µ«²»Æ¥Åädefghi£¬/\bdef\b/ֻƥÅä×Ö·û´®def¡£×¢Ò⣺/\bdef/¿ÉÆ¥Åä$defghi£¬ÒòΪ$²¢²»±»¿´×÷Êǵ¥´ÊµÄ²¿·Ö¡£ £ Àý4£º\BÔÚµ¥´ÊÄÚ²¿Æ¥Å䣺/\Bdef/Æ¥ÅäabcdefµÈ£¬µ«²»Æ¥Åädef£»/def\B/Æ¥ÅädefghiµÈ£»/\Bdef\B/Æ¥Åäcdefg¡¢abcdefghiµÈ£¬µ«²»Æ¥Åädef,defghi,abcdef¡£ 7¡¢Ä£Ê½ÖеıäÁ¿Ìæ»» £ ½«¾ä×ӷֳɵ¥´Ê£º £ £ $pattern = "[\\t ]+"; £ £ @words = split(/$pattern/, $line); 8¡¢×Ö·û·¶Î§×ªÒå E תÒå×Ö·ûÃèÊö·¶Î§ \dÈÎÒâÊý×Ö[0-9] \D³ýÊý×ÖÍâµÄÈÎÒâ×Ö·û [^0-9] \wÈÎÒâµ¥´Ê×Ö·û[_0-9a-zA-Z] \WÈÎÒâ·Çµ¥´Ê×Ö·û[^_0-9a-zA-Z] \s¿Õ°×[ \r\t\n\f] \S·Ç¿Õ°×[^ \r\t\n\f] £ Àý£º/[\da-z]/Æ¥ÅäÈÎÒâÊý×Ö»òСд×Öĸ¡£ 9¡¢Æ¥ÅäÈÎÒâ×Ö·û £ ×Ö·û"."Æ¥Åä³ý»»ÐÐÍâµÄËùÓÐ×Ö·û£¬Í¨³£Óë*ºÏÓᣠ10¡¢Æ¥ÅäÖ¸¶¨ÊýÄ¿µÄ×Ö·û £ ×Ö·û¶Ô{}Ö¸¶¨ËùÆ¥Åä×Ö·ûµÄ³öÏÖ´ÎÊý¡£È磺/def/Æ¥Åädef,deefºÍdeeef£»/def/Æ¥Åädeeef£»/def/Æ¥Åä²»ÉÙÓÚ3¸öeÔÚdºÍfÖ®¼ä£»/def/Æ¥Åä²»¶àÓÚ3¸öeÔÚdºÍfÖ®¼ä¡£ 11¡¢Ö¸¶¨Ñ¡Ïî £ ×Ö·û"|"Ö¸¶¨Á½¸ö»ò¶à¸öÑ¡ÔñÀ´Æ¥Åäģʽ¡£È磺/def|ghi/Æ¥Åädef»òghi¡£ £ Àý£º¼ìÑéÊý×Ö±íʾºÏ·¨ÐÔ £ if ($number =~ /^-?\d+$|^-?0[xX][\da-fa-F]+$/) { £ £ print ("$number is a legal integer.\n"); £ } else { £ £ print ("$number is not a legal integer.\n"); £ } £ ÆäÖÐ ^-?\d+$ Æ¥ÅäÊ®½øÖÆÊý×Ö£¬^-?0[xX][\da-fa-F]+$ Æ¥ÅäÊ®Áù½øÖÆÊý×Ö¡£ 12¡¢Ä£Ê½µÄ²¿·ÖÖØÓà £ µ±Ä£Ê½ÖÐÆ¥ÅäÏàͬµÄ²¿·Ö³öÏÖ¶à´Îʱ£¬¿ÉÓÃÀ¨ºÅÀ¨ÆðÀ´£¬ÓÃ\nÀ´¶à´ÎÒýÓã¬ÒÔ¼ò»¯±í´ïʽ£º /\d([\W])\d\1\d/ Æ¥Å䣺 £ £ 12-05-92 £ £ 26.11.87 £ £ 07 04 92µÈ £ ×¢Ò⣺/\d([\W])\d\1\d/ ²»Í¬ÓÚ/(\d)([\W])\1\2\1/ £¬ºóÕßֻƥÅäÐÎÈç17-17-17µÄ×Ö·û´®£¬¶ø²»Æ¥Åä17-05-91µÈ¡£ 13¡¢×ªÒåºÍÌØ¶¨×Ö·ûµÄÖ´ÐдÎÐò £ Ïó²Ù×÷·ûÒ»Ñù£¬×ªÒåºÍÌØ¶¨×Ö·ûÒ²ÓÐÖ´ÐдÎÐò£º ÌØÊâ×Ö·ûÃèÊö ()ģʽÄÚ´æ + * ? {}³öÏÖ´ÎÊý ^ $ \b \Bê |Ñ¡Ïî 14¡¢Ö¸¶¨Ä£Ê½¶¨½ç·û £ ȱʡµÄ£¬Ä£Ê½¶¨½ç·ûΪ·´Ð±Ïß/£¬µ«Æä¿ÉÓÃ×Öĸm×ÔÐÐÖ¸¶¨£¬È磺 £ £ m!/u/jqpublic/perl/prog1! µÈ¼ÛÓÚ/\/u\/jqpublic\/perl\/prog1/ £ ×¢£ºµ±ÓÃ×Öĸ'×÷Ϊ¶¨½ç·ûʱ£¬²»×ö±äÁ¿Ìæ»»£»µ±ÓÃÌØÊâ×Ö·û×÷Ϊ¶¨½ç·ûʱ£¬ÆäתÒ幦ÄÜ»òÌØÊ⹦Äܼ´²»ÄÜʹÓᣠ15¡¢Ä£Ê½´ÎÐò±äÁ¿ £ ÔÚģʽƥÅäºóµ÷ÓÃÖØÓò¿·ÖµÄ½á¹û¿ÉÓñäÁ¿$n£¬È«²¿µÄ½á¹ûÓñäÁ¿$Content$amp;¡£ £ £ $string = "This string contains the number 25.11."; £ £ $string =~ /-?(\d+)\.?(\d+)/; # Æ¥Åä½á¹ûΪ25.11 £ £ $integerpart = $1; # now $integerpart = 25 £ £ $decimalpart = $2; # now $decimalpart = 11 £ £ $totalpart = $Content$amp;; # now totalpart = 25.11 ËÄ¡¢Ä£Ê½Æ¥ÅäÑ¡Ïî Ñ¡ÏîÃèÊö gÆ¥ÅäËùÓпÉÄܵÄģʽ iºöÂÔ´óСд m½«´®ÊÓΪ¶àÐÐ oÖ»¸³ÖµÒ»´Î s½«´®ÊÓΪµ¥ÐÐ xºöÂÔģʽÖÐµÄ¿Õ°× 1¡¢Æ¥ÅäËùÓпÉÄܵÄģʽ(gÑ¡Ïî) £ @matches = "balata" =~ /.a/g; # now @matches = ("ba", "la", "ta") £ Æ¥ÅäµÄÑ»·£º £ while ("balata" =~ /.a/g) { £ £ $match = $Content$amp;; £ £ print ("$match\n"); £ } £ ½á¹ûΪ£º £ £ ba £ £ la £ £ ta £ µ±Ê¹ÓÃÁËÑ¡Ïîgʱ£¬¿ÉÓú¯ÊýposÀ´¿ØÖÆÏÂ´ÎÆ¥ÅäµÄÆ«ÒÆ£º £ £ $offset = pos($string); £ £ pos($string) = $newoffset; 2¡¢ºöÂÔ´óСд(iÑ¡Ïî)Àý £ /de/i Æ¥Åäde,dE,DeºÍDE¡£ 3¡¢½«×Ö·û´®¿´×÷¶àÐÐ(mÑ¡Ïî) £ ÔÚ´ËÇé¿öÏ£¬^·ûºÅÆ¥Åä×Ö·û´®µÄÆðʼ»òеÄÒ»ÐÐµÄÆðʼ£»$·ûºÅÆ¥ÅäÈÎÒâÐеÄĩβ¡£ 4¡¢Ö»Ö´ÐÐÒ»´Î±äÁ¿Ìæ»»Àý £ $var = 1; £ $line = £ while ($var < 10) { £ £ $result = $line =~ /$var/o; £ £ $line = £ £ $var++; £ } £ ÿ´Î¾ùÆ¥Åä/1/¡£ 5¡¢½«×Ö·û´®¿´×÷µ¥ÐÐÀý £ /a.*bc/sÆ¥Åä×Ö·û´®axxxxx \nxxxxbc£¬µ«/a.*bc/Ôò²»Æ¥Åä¸Ã×Ö·û´®¡£ 6¡¢ÔÚģʽÖкöÂÔ¿Õ¸ñ £ /\d ([\W]) \d \1 \d/xµÈ¼ÛÓÚ/\d([\W])\d\1\d/¡£ Îå¡¢Ìæ»»²Ù×÷·û £ Ó﷨Ϊs/pattern/replacement/£¬ÆäЧ¹ûΪ½«×Ö·û´®ÖÐÓëpatternÆ¥ÅäµÄ²¿·Ö»»³Éreplacement¡£È磺 £ £ $string = "abc123def"; £ £ $string =~ s/123/456/; # now $string = "abc456def"; £ ÔÚÌæ»»²¿·Ö¿ÉʹÓÃģʽ´ÎÐò±äÁ¿$n£¬Èçs/(\d+)/[$1]/£¬µ«ÔÚÌæ»»²¿·Ö²»Ö§³ÖģʽµÄÌØÊâ×Ö·û£¬Èç{},*,+µÈ£¬Èçs/abc/[def]/½«°ÑabcÌæ»»Îª[def]¡£ £ Ìæ»»²Ù×÷·ûµÄÑ¡ÏîÈçÏÂ±í£º Ñ¡ÏîÃèÊö g¸Ä±äģʽÖеÄËùÓÐÆ¥Åä iºöÂÔģʽÖеĴóСд eÌæ»»×Ö·û´®×÷Ϊ±í´ïʽ m½«´ýÆ¥Åä´®ÊÓΪ¶àÐÐ o½ö¸³ÖµÒ»´Î s½«´ýÆ¥Åä´®ÊÓΪµ¥ÐÐ xºöÂÔģʽÖÐµÄ¿Õ°× £ ×¢£ºeÑ¡Ïî°ÑÌæ»»²¿·ÖµÄ×Ö·û´®¿´×÷±í´ïʽ£¬ÔÚÌæ»»Ö®Ç°ÏȼÆËãÆäÖµ£¬È磺 £ £ $string = "0abc1"; £ £ $string =~ s/[a-zA-Z]+/$Content$amp; x 2/e; # now $string = "0abcabc1" Áù¡¢·Òë²Ù×÷·û £ ÕâÊÇÁíÒ»ÖÖÌæ»»·½Ê½£¬Óï·¨È磺tr/string1/string2/¡£Í¬Ñù£¬string2ÎªÌæ»»²¿·Ö£¬µ«ÆäЧ¹ûÊǰÑstring1ÖеĵÚÒ»¸ö×Ö·ûÌæ»»Îªstring2ÖеĵÚÒ»¸ö×Ö·û£¬°Ñstring1Öеĵڶþ¸ö×Ö·ûÌæ»»Îªstring2Öеĵڶþ¸ö×Ö·û£¬ÒÀ´ËÀàÍÆ¡£È磺 £ £ $string = "abcdefghicba"; £ £ $string =~ tr/abc/def/; # now string = "defdefghifed" £ µ±string1±Èstring2³¤Ê±£¬Æä¶àÓà×Ö·ûÌæ»»Îªstring2µÄ×îºóÒ»¸ö×Ö·û£»µ±string1ÖÐͬһ¸ö×Ö·û³öÏÖ¶à´Îʱ£¬½«Ê¹ÓõÚÒ»¸öÌæ»»×Ö·û¡£ £ ·Òë²Ù×÷·ûµÄÑ¡ÏîÈçÏ£º Ñ¡ÏîÃèÊö c·ÒëËùÓÐδָ¶¨×Ö·û dɾ³ýËùÓÐÖ¸¶¨×Ö·û s°Ñ¶à¸öÏàͬµÄÊä³ö×Ö·ûËõ³ÉÒ»¸ö £ Èç$string =~ tr/\d/ /c;°ÑËùÓзÇÊý×Ö×Ö·ûÌæ»»Îª¿Õ¸ñ¡£$string =~ tr/\t //d£»É¾³ýtabºÍ¿Õ¸ñ£»£ $string =~ tr/0-9/ /cs£»°ÑÊý×Ö¼äµÄÆäËü×Ö·ûÌæ»»ÎªÒ»¸ö¿Õ¸ñ¡£ Æß¡¢À©Õ¹Ä£Ê½Æ¥Åä £ PERLÖ§³ÖPERL4ºÍ±ê×¼UNIXģʽƥÅä²Ù×÷ËùûÓеÄһЩģʽƥÅäÄÜÁ¦¡£ÆäÓ﷨Ϊ£º(? 1¡¢²»´æÖüÀ¨ºÅÄ򵀮¥ÅäÄÚÈÝ £ ÔÚPERLµÄģʽÖУ¬À¨ºÅÄÚµÄ×Óģʽ½«´æÖüÔÚÄÚ´æÖУ¬´Ë¹¦Äܼ´È¡Ïû´æÖü¸ÃÀ¨ºÅÄ򵀮¥ÅäÄÚÈÝ£¬Èç/(?:a|b|c)(d|e)f\1/ÖеÄ\1±íʾÒÑÆ¥ÅäµÄd»òe£¬¶ø²»ÊÇa»òb»òc¡£ 2¡¢ÄÚǶģʽѡÏî £ ͨ³£Ä£Ê½Ñ¡ÏîÖÃÓÚÆäºó£¬ÓÐËĸöÑ¡Ïi¡¢m¡¢s¡¢x¿ÉÒÔÄÚǶʹÓã¬Ó﷨Ϊ£º/(?option)pattern/£¬µÈ¼ÛÓÚ/pattern/option¡£ 3¡¢¿Ï¶¨µÄºÍ·ñ¶¨µÄÔ¤¼ûÆ¥Åä £ ¿Ï¶¨µÄÔ¤¼ûÆ¥ÅäÓ﷨Ϊ/pattern(?=string)/£¬ÆäÒâÒåΪƥÅäºóÃæÎªstringµÄģʽ£¬Ïà·´µÄ£¬(?!string)ÒâÒåΪƥÅäºóÃæ·ÇstringµÄģʽ£¬È磺 £ £ $string = "25abc8"; £ £ $string =~ /abc(?=[0-9])/; £ £ $matched = $Content$amp;; # $Content$amp;ΪÒÑÆ¥ÅäµÄģʽ£¬´Ë´¦Îªabc£¬¶ø²»ÊÇabc8 4¡¢Ä£Ê½×¢ÊÍ £ PERL5ÖпÉÒÔÔÚģʽÖÐÓÃ?#À´¼Ó×¢ÊÍ£¬È磺 £ £ if ($string =~ /(?i)[a-z](?# match two or three alphabetic characters)/ { £ £ £ ... £ £ } |

3Â¥2005-06-14 19:16:56
miRNA
ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 16.6
- ½ð±Ò: 13289.9
- ºì»¨: 4
- Ìû×Ó: 4967
- ÔÚÏß: 10.3Сʱ
- ³æºÅ: 56231
- ×¢²á: 2005-01-07
- רҵ: ½ðÊôÓлú»¯Ñ§
|
µÚÆßÕ ¿ØÖƽṹ Ò»¡¢Ìõ¼þÅÐ¶Ï if ( £ } elsif ( £ } ... else{ £ } ¶þ¡¢Ñ»·£º 1¡¢whileÑ»· while ( £ } 2¡¢untilÑ»· until ( £ } 3¡¢ÀàCµÄforÑ»· £¬Èç for ($count=1; $count <= 5; $count++) { £ # statements inside the loop go here } ÏÂÃæÊÇÔÚforÑ»·ÖÐʹÓöººÅ²Ù×÷·ûµÄÀý×Ó£º for ($line = £ print ($line); } ËüµÈ¼ÛÓÚÏÂÁÐÓï¾ä£º $line = $count = 1; while ($count <= 3) { £ print ($line); £ $line = £ $count++; } 4¡¢Õë¶ÔÁбí(Êý×é)ÿ¸öÔªËØµÄÑ»·£ºforeach£¬Ó﷨Ϊ£º foreach localvar (listexpr) { £ statement_block; } Àý£º foreach $word (@words) { £ if ($word eq "the" { £ £ print ("found the word 'the'\n" ; £ } } ×¢£º (1)´Ë´¦µÄÑ»·±äÁ¿localvarÊǸö¾Ö²¿±äÁ¿£¬Èç¹ûÔÚ´Ë֮ǰËüÒÑÓÐÖµ£¬ÔòÑ»·ºóÈÔ»Ö¸´¸ÃÖµ¡£ (2)ÔÚÑ»·Öиıä¾Ö²¿±äÁ¿£¬ÏàÓ¦µÄÊý×é±äÁ¿Ò²»á¸Ä±ä£¬È磺 @list = (1, 2, 3, 4, 5); foreach $temp (@list) { £ if ($temp == 2) { £ £ $temp = 20; £ } } ´Ëʱ@listÒѱä³ÉÁË(1, 20, 3, 4, 5)¡£ 5¡¢doÑ»· do { £ statement_block } while_or_until (condexpr); doÑ»·ÖÁÉÙÖ´ÐÐÒ»´ÎÑ»·¡£ 6¡¢Ñ»·¿ØÖÆ Í˳öÑ»·Îªlast£¬ÓëCÖеÄbreak×÷ÓÃÏàͬ£»Ö´ÐÐÏÂÒ»¸öÑ»·Îªnext£¬ÓëCÖеÄcontinue×÷ÓÃÏàͬ£»PERLÌØÓеÄÒ»¸öÃüÁîÊÇredo£¬Æäº¬ÒåÊÇÖØ¸´´Ë´ÎÑ»·£¬¼´Ñ»·±äÁ¿²»±ä£¬»Øµ½Ñ»·Æðʼµã£¬µ«Òª×¢Ò⣬redoÃüÁîÔÚdoÑ»·Öв»Æð×÷Óᣠ7¡¢´«Í³µÄgoto label;Óï¾ä¡£ Èý¡¢µ¥ÐÐÌõ¼þ Ó﷨Ϊstatement keyword condexpr¡£ÆäÖÐkeyword¿ÉΪif¡¢unless¡¢while»òuntil£¬È磺 £ print ("This is zero.\n" if ($var == 0); £ print ("This is zero.\n" unless ($var != 0); £ print ("Not zero yet.\n" while ($var-- > 0); £ print ("Not zero yet.\n" until ($var-- == 0); ËäÈ»Ìõ¼þÅжÏдÔÚºóÃæ£¬µ«È´ÊÇÏÈÖ´ÐÐµÄ µÚ°ËÕ ×Ó³ÌÐò Ò»¡¢¶¨Òå ×Ó³ÌÐò¼´Ö´ÐÐÒ»¸öÌØÊâÈÎÎñµÄÒ»¶Î·ÖÀëµÄ´úÂ룬Ëü¿ÉÒÔʹ¼õÉÙÖØ¸´´úÂëÇÒʹ³ÌÐòÒ×¶Á¡£PERLÖУ¬×Ó³ÌÐò¿ÉÒÔ³öÏÖÔÚ³ÌÐòµÄÈκεط½¡£¶¨Òå·½·¨Îª£º sub subroutine{ £ statements; } ¶þ¡¢µ÷Óà µ÷Ó÷½·¨ÈçÏ£º 1¡¢ÓÃ&µ÷Óà &subname; ... sub subname{ £ ... } 2¡¢Ïȶ¨Òåºóµ÷Óà £¬¿ÉÒÔÊ¡ÂÔ&·ûºÅ sub subname{ £ ... } ... subname; 3¡¢Ç°ÏòÒýÓà £¬Ïȶ¨Òå×Ó³ÌÐòÃû£¬ºóÃæÔÙ¶¨Òå×Ó³ÌÐòÌå sub subname; ... subname; ... sub subname{ £ ... } 4¡¢ÓÃdoµ÷Óà do my_sub(1, 2, 3);µÈ¼ÛÓÚ&my_sub(1, 2, 3); Èý¡¢·µ»ØÖµ ȱʡµÄ£¬×Ó³ÌÐòÖÐ×îºóÒ»¸öÓï¾äµÄÖµ½«ÓÃ×÷·µ»ØÖµ¡£Óï¾äreturn (retval);Ò²¿ÉÒÔÍÆ³ö×Ó³ÌÐò²¢·µ»ØÖµretval£¬retval¿ÉÒÔΪÁÐ±í¡£ ËÄ¡¢¾Ö²¿±äÁ¿ ×Ó³ÌÐòÖоֲ¿±äÁ¿µÄ¶¨ÒåÓÐÁ½ÖÖ·½·¨£ºmyºÍlocal¡£ÆäÇø±ðÊÇ£ºmy¶¨ÒåµÄ±äÁ¿Ö»ÔÚ¸Ã×Ó³ÌÐòÖдæÔÚ£»¶ølocal¶¨ÒåµÄ±äÁ¿²»´æÔÚÓÚÖ÷³ÌÐòÖУ¬µ«´æÔÚÓÚ¸Ã×Ó³ÌÐòºÍ¸Ã×Ó³ÌÐòµ÷ÓõÄ×Ó³ÌÐòÖÐ(ÔÚPERL4ÖÐûÓÐmy)¡£¶¨Òåʱ¿ÉÒÔ¸øÆä¸³Öµ£¬È磺 my($scalar) = 43; local(@array) = (1, 2, 3); Îå¡¢×Ó³ÌÐò²ÎÊý´«µÝ 1¡¢ÐÎʽ &sub1(&number1, $number2, $nubmer3); ... sub sub1{ £ my($number1, $number2, $number3) = @_; £ ... } 2¡¢´«ËÍÊý×é &addlist (@mylist); &addlist ("14", "6", "11" ; &addlist ($value1, @sublist, $value2); ... sub addlist { £ my (@list) = @_; £ ... } ²ÎÊýΪÊý×éʱ£¬×Ó³ÌÐòÖ»½«Ëü¸³¸øÒ»¸öÊý×é±äÁ¿¡£Èç sub twolists { £ my (@list1, @list2) = @_; } ÖÐ@list2±ØÈ»Îª¿Õ¡£µ«¼òµ¥±äÁ¿ºÍÊý×é±äÁ¿¿ÉÒÔͬʱ´«µÝ£º &twoargs(47, @mylist); # 47¸³¸ø$scalar£¬@mylist¸³¸ø@list &twoargs(@mylist); # @mylistµÄµÚÒ»¸öÔªËØ¸³¸ø$scalar£¬ÆäÓàµÄÔªËØ¸³¸ø@list ... sub twoargs { £ my ($scalar, @list) = @_; £ ... } Áù¡¢µÝ¹é×Ó³ÌÐò PERLÖУ¬×Ó³ÌÐò¿ÉÒÔ»¥Ïàµ÷Óã¬Æäµ÷Ó÷½·¨ÓëÉÏÊöÏàͬ£¬µ±µ÷ÓøÃ×Ó³ÌÐò±¾Éíʱ£¬¼´³ÉÁ˵ݹé×Ó³ÌÐò¡£µÝ¹é×Ó³ÌÐòÓÐÁ½¸öÌõ¼þ£º1¡¢³ýÁ˲»±»×Ó³ÌÐò¸Ä±äµÄ±äÁ¿Í⣬ËùÓеıäÁ¿±ØÐëµÄ¾Ö²¿µÄ£»2¡¢¸Ã×Ó³ÌÐòÒªº¬ÓÐÍ£Ö¹µ÷Óñ¾ÉíµÄ´úÂë¡£ Æß¡¢ÓñðÃû´«µÝÊý×é²ÎÊý 1¡¢ÓÃÇ°Ãæ½²µ½µÄµ÷Ó÷½·¨&my_sub(@array)½«°ÑÊý×é@arrayµÄÊý¾Ý¿½±´µ½×Ó³ÌÐòÖеıäÁ¿@_ÖУ¬µ±Êý×éºÜ´óʱ£¬½«»á»¨·Ñ½Ï¶àµÄ×ÊÔ´ºÍʱ¼ä£¬¶øÓñðÃû´«µÝ½«²»×öÕâЩ¹¤×÷£¬¶ø¶Ô¸ÃÊý×éÖ±½Ó²Ù×÷¡£ÐÎʽÈ磺 @myarray = (1, 2, 3, 4, 5); &my_sub(*myarray); sub my_sub { £ my (*subarray) = @_; } 2¡¢´Ë·½·¨ÀàËÆÓÚCÓïÑÔÖеĴ«µÝÊý×éµÄÆðʼµØÖ·Ö¸Õ룬µ«²¢²»Ò»Ñù£¬ÔÚ¶¨ÒåÊý×éµÄ±ðÃûÖ®ºó£¬Èç¹ûÓÐͬÃûµÄ¼òµ¥±äÁ¿£¬Ôò¶Ô¸Ã±äÁ¿Ò²ÊÇÆð×÷Óõġ£È磺 $foo = 26; @foo = ("here's", "a", "list" ; &testsub (*foo); ... sub testsub { £ local (*printarray) = @_; £ ... £ $printarray = 61; } µ±×Ó³ÌÐòÖ´ÐÐÍ꣬Ö÷³ÌÐòÖеÄ$fooµÄÖµÒѾ³ÉÁË61£¬¶ø²»ÔÙÊÇ26ÁË¡£ 3¡¢ÓñðÃûµÄ·½·¨¿ÉÒÔ´«µÝ¶à¸öÊý×飬È磺 @array1 = (1, 2, 3); @array2 = (4, 5, 6); &two_array_sub (*array1, *array2); sub two_array_sub { £ my (*subarray1, *subarray2) = @_; } ÔÚ¸Ã×Ó³ÌÐòÖУ¬subarray1ÊÇarray1µÄ±ðÃû£¬subarray2ÊÇarray2µÄ±ðÃû¡£ °Ë¡¢Ô¤¶¨ÒåµÄ×Ó³ÌÐò PERL5Ô¤¶¨ÒåÁËÈý¸ö×Ó³ÌÐò£¬·Ö±ðÔÚÌØ¶¨µÄʱ¼äÖ´ÐУ¬ËüÃÇÊÇ£ºBEGIN×Ó³ÌÐòÔÚ³ÌÐòÆô¶¯Ê±±»µ÷Óã»END×Ó³ÌÐòÔÚ³ÌÐò½áÊøÊ±±»µ÷Óã»AUTOLOAD×Ó³ÌÐòÔÚÕÒ²»µ½Ä³¸ö×Ó³ÌÐòʱ±»µ÷Óá£Äã¿ÉÒÔ×Ô¼º¶¨ÒåËüÃÇ£¬ÒÔÔÚÌØ¶¨Ê±¼äÖ´ÐÐËùÐèÒªµÄ¶¯×÷¡£È磺 BEGIN { £ print("Hi! Welcome to Perl!\n" ; } AUTOLOAD{ £ print("subroutine $AUTOLOAD not found\n" ; # ±äÁ¿$AUTOLOAD¼´Î´ÕÒµ½µÄ×Ó³ÌÐòÃû £ print("arguments passed: @_\n" ; } Èôͬһ¸öÔ¤¶¨Òå×Ó³ÌÐò¶¨ÒåÁ˶à¸ö£¬ÔòBEGIN˳ÐòÖ´ÐУ¬ENDÄæÐòÖ´ÐС£ |

4Â¥2005-06-14 19:17:17
miRNA
ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 16.6
- ½ð±Ò: 13289.9
- ºì»¨: 4
- Ìû×Ó: 4967
- ÔÚÏß: 10.3Сʱ
- ³æºÅ: 56231
- ×¢²á: 2005-01-07
- רҵ: ½ðÊôÓлú»¯Ñ§
¡ï ¡ï
yuefour(½ð±Ò+2):ÐÁ¿àÁË
yuefour(½ð±Ò+2):ÐÁ¿àÁË
|
µÚ¾ÅÕ ¹ØÁªÊý×é/¹þÏ£±í Ò»¡¢Êý×é±äÁ¿µÄÏÞÖÆ £ ÔÚÇ°Ãæ½²µÄÊý×é±äÁ¿ÖУ¬¿ÉÒÔͨ¹ýϱê·ÃÎÊÆäÖеÄÔªËØ¡£ÀýÈ磬ÏÂÁÐÓï¾ä·ÃÎÊÊý×é@arrayµÄµÚÈý¸öÔªËØ£º £ $scalar = $array[2]; £ ËäÈ»Êý×éºÜÓÐÓ㬵«ËüÃÇÓÐÒ»¸öÏÔÖøÈ±ÏÝ£¬¼´ºÜÄѼÇסÄĸöÔªËØ´æÖüµÄʲôÄÚÈÝ¡£¼ÙÈçÎÒÃÇÀ´Ð´Ò»¸ö³ÌÐò¼ÆËãijÎļþÖÐÊ××Öĸ´óдµÄµ¥´Ê³öÏֵĴÎÊý£¬ÓÃÊý×éÀ´ÊµÏ־ͱȽÏÀ§ÄÑ£¬³ÌÐò´úÂëÈçÏ£º 1 : #!/usr/local/bin/perl 2 : 3 : while ($inputline = 4 :£ while ($inputline =~ /\b[A-Z]\S+/g) { 5 :£ £ $word = $Content$amp;; 6 :£ £ $word =~ s/[;.,:-]$//; # remove punctuation 7 :£ £ for ($count = 1; $count <= @wordlist; 8 :£ £ £ £ $count++) { 9 :£ £ £ $found = 0; 10:£ £ £ if ($wordlist[$count-1] eq $word) { 11:£ £ £ £ $found = 1; 12:£ £ £ £ $wordcount[$count-1] += 1; 13:£ £ £ £ last; 14:£ £ £ } 15:£ £ } 16:£ £ if ($found == 0) { 17:£ £ £ $oldlength = @wordlist; 18:£ £ £ $wordlist[$oldlength] = $word; 19:£ £ £ $wordcount[$oldlength] = 1; 20:£ £ } 21:£ } 22: } 23: print ("Capitalized words and number of occurrences:\n"); 24: for ($count = 1; $count <= @wordlist; $count++) { 25:£ print ("$wordlist[$count-1]: $wordcount[$count-1]\n"); 26: } £ ÔËÐнá¹ûÈçÏ£º Here is a line of Input. This Input contains some Capitalized words. ^D Capitalized words and number of occurrences: Here: 1 Input: 2 This: 1 Capitalized: 1 £ Õâ¸ö³ÌÐòÿ´Î´Ó±ê×¼ÊäÈëÎļþ¶ÁÒ»ÐÐÎÄ×Ö£¬µÚËÄÐÐÆðµÄÑ»·Æ¥ÅäÿÐÐÖÐÊ××Öĸ´óдµÄµ¥´Ê£¬Ã¿ÕÒµ½Ò»¸öÑ»·Ò»´Î£¬¸³¸ø¼òµ¥±äÁ¿$word¡£ÔÚµÚÁùÐÐÖÐÈ¥µô±êµãºó£¬²é¿´¸Ãµ¥´ÊÊÇ·ñÔø³öÏÖ¹ý£¬7~15ÐÐÖÐÔÚ@wordlistÖа¤¸öÔªËØ×ö´Ë¼ì²é£¬Èç¹ûij¸öÔªËØÓë$wordÏàµÈ£¬@wordcountÖÐÏàÓ¦µÄÔªËØ¾ÍÔö¼ÓÒ»¸öÊý¡£Èç¹ûûÓгöÏÖ¹ý£¬¼´@wordlistÖÐûÓÐÔªËØÓë$wordÏàµÈ£¬16~20Ðиø@wordlistºÍ@wordcountÔö¼ÓÒ»¸öÐÂÔªËØ¡£ ¶þ¡¢¶¨Òå £ ÕýÈçÄãËù¿´µ½µÄ£¬Ê¹ÓÃÊý×éÔªËØ²úÉúÁËһЩÎÊÌâ¡£Ê×ÏÈ£¬@wordlistÖÐÄĸöÔªËØ¶ÔÓ¦×ÅÄĸöµ¥´Ê²¢²»Ã÷ÏÔ£»¸üÔãµÄÊÇ£¬Ã¿¶Á½øÒ»¸öе¥´Ê£¬³ÌÐò±ØÐë¼ì²éÕû¸öÁбí²ÅÄÜÖªµÀ¸Ãµ¥´ÊÊÇ·ñÔø¾³öÏÖ¹ý£¬µ±Áбí±äµÃ½Ï´óʱ£¬ÕâÊǺܺķÑʱ¼äµÄ¡£ £ ÕâЩÎÊÌâ²úÉúµÄÔÒòÊÇÊý×éÔªËØÍ¨¹ýÊý×Öϱê·ÃÎÊ£¬ÎªÁ˽â¾öÕâÀàÎÊÌ⣬Perl¶¨ÒåÁËÁíÒ»ÖÖÊý×飬¿ÉÒÔÓÃÈÎÒâ¼òµ¥±äÁ¿ÖµÀ´·ÃÎÊÆäÔªËØ£¬ÕâÖÖÊý×é½Ð×ö¹ØÁªÊý×飬Ҳ½Ð¹þÏ£±í¡£ £ ΪÁËÇø·Ö¹ØÁªÊý×é±äÁ¿ÓëÆÕͨµÄÊý×é±äÁ¿£¬PerlʹÓÃ%×÷ΪÆäÊ××Ö·û£¬¶øÊý×é±äÁ¿ÒÔ@´òÍ·¡£ÓëÆäËü±äÁ¿ÃûÒ»Ñù£¬%ºóµÄµÚÒ»¸ö×Ö·û±ØÐëΪ×Öĸ£¬ºóÐø×Ö·û¿ÉÒÔΪ×Öĸ¡¢Êý×Ö»òÏ»®Ïß¡£ Èý¡¢·ÃÎʹØÁªÊý×éµÄÔªËØ £ ¹ØÁªÊý×éµÄϱê¿ÉÒÔΪÈκμòµ¥/±êÁ¿Öµ£¬·ÃÎʵ¥¸öÔªËØÊ±ÒÔ$·ûºÅ´òÍ·£¬Ï±êÓôóÀ¨ºÅΧÆðÀ´¡£ÀýÈ磺 $fruit $number $integer £ ¼òµ¥±äÁ¿Ò²¿É×÷Ϊϱ꣬È磺 £ $fruit ËÄ¡¢Ôö¼ÓÔªËØ £ ´´½¨Ò»¸ö¹ØÁªÊý×éÔªËØ×î¼òµ¥µÄ·½·¨ÊǸ³Öµ£¬ÈçÓï¾ä$fruit = 1£» °Ñ1¸³¸ø¹ØÁªÊý×é%fruitϱêΪbananasµÄÔªËØ£¬Èç¹û¸ÃÔªËØ²»´æÔÚ£¬Ôò±»´´½¨£¬Èç¹ûÊý×é%fruit´ÓδʹÓùý£¬Ò²±»´´½¨¡£ £ ÕâÒ»ÌØÐÔʹµÃ¹ØÁªÊý×éºÜÈÝÒ×ÓÃÓÚ¼ÆÊý¡£ÏÂÃæÎÒÃÇÓùØÁªÊý×é¸ÄдÉÏÃæµÄ³ÌÐò£¬×¢ÒâʵÏÖͬÑùµÄ¹¦Äܴ˳ÌÐò¼ò»¯ÁËÐí¶à¡£ 1 : #!/usr/local/bin/perl 2 : 3 : while ($inputline = ) { 4 :£ while ($inputline =~ /\b[A-Z]\S+/g) { 5 :£ £ $word = $Content$amp;; 6 :£ £ $word =~ s/[;.,:-]$//; # remove punctuation 7 :£ £ $wordlist += 1; 8 :£ } 9 : } 10: print ("Capitalized words and number of occurrences:\n"); 11: foreach $capword (keys(%wordlist)) { 12:£ print ("$capword: $wordlist\n"); 13: } £ ÔËÐнá¹ûÈçÏ£º Here is a line of Input. This Input contains some Capitalized words. ^D Capitalized words and number of occurrences: This: 1 Input: 2 Here: 1 Capitalized: 1 £ Äã¿ÉÒÔ¿´µ½£¬Õâ´Î³ÌÐò¼òµ¥¶àÁË£¬¶ÁÈ¡ÊäÈë²¢´æÖü¸÷µ¥´ÊÊýÄ¿´Ó20ÐмõÉÙµ½ÁË7ÐС£ £ ±¾³ÌÐòÓùØÁªÊý×é%wordlist¸ú×ÙÊ××Öĸ´óдµÄµ¥´Ê£¬Ï±ê¾ÍÓõ¥´Ê±¾Éí£¬ÔªËØÖµÎª¸Ãµ¥´Ê³öÏֵĴÎÊý¡£µÚ11ÐÐʹÓÃÁËÄÚǶº¯Êýkeys()¡£Õâ¸öº¯Êý·µ»Ø¹ØÁªÊý×éµÄϱêÁÐ±í£¬foreachÓï¾ä¾ÍÓôËÁбíÑ»·¡£ £ ×¢£º¹ØÁªÊý×é×ÜÊÇËæ»ú´æÖüµÄ£¬Òò´Ëµ±ÄãÓÃkeys()·ÃÎÊÆäËùÓÐÔªËØÊ±£¬²»±£Ö¤ÔªËØÒÔÈκÎ˳Ðò³öÏÖ£¬ÌرðÖµµÃÒ»ÌáµÄÊÇ£¬ËüÃDz»»áÒÔ±»´´½¨µÄ˳Ðò³öÏÖ¡£ £ ÒªÏë¿ØÖÆ¹ØÁªÊý×éÔªËØ³öÏֵĴÎÐò£¬¿ÉÒÔÓÃsort()º¯Êý¶Ôkeys()·µ»ØÖµ½øÐÐÅÅÁУ¬È磺 foreach $capword (sort keys(%wordlist)) { print ("$capword: $wordlist\n"); } Îå¡¢´´½¨¹ØÁªÊý×é £ ¿ÉÒÔÓõ¥¸ö¸³ÖµÓï¾ä´´½¨¹ØÁªÊý×飬È磺 £ %fruit = ("apples",17,"bananas",9,"oranges","none"); £ ´ËÓï¾ä´´½¨µÄ¹ØÁªÊý×麬ÓÐÏÂÃæÈý¸öÔªËØ£º ϱêΪapplesµÄÔªËØ£¬ÖµÎª17 ϱêΪbananasµÄÔªËØ£¬ÖµÎª9 ϱêΪorangesµÄÔªËØ£¬ÖµÎªnone £ ×¢£ºÓÃÁÐ±í¸ø¹ØÁªÊý×鸳ֵʱ£¬Perl5ÔÊÐíʹÓÃ"=>"»ò","À´·Ö¸ôϱêÓëÖµ£¬ÓÃ"=>"¿É¶ÁÐÔ¸üºÃЩ£¬ÉÏÃæÓï¾äµÈЧÓÚ£º £ %fruit = ("apples"=>17,"bananas"=>9,"oranges"=>"none"); Áù¡¢´ÓÊý×é±äÁ¿¸´ÖƵ½¹ØÁªÊý×é £ ÓëÁбíÒ»Ñù£¬Ò²¿ÉÒÔͨ¹ýÊý×é±äÁ¿´´½¨¹ØÁªÊý×飬µ±È»£¬ÆäÔªËØÊýĿӦ¸ÃΪżÊý£¬È磺 £ @fruit = ("apples",17,"bananas",9,"oranges","none"); £ %fruit = @fruit; £ ·´Ö®£¬¿ÉÒ԰ѹØÁªÊý×鸳¸øÊý×é±äÁ¿£¬È磺 £ %fruit = ("grapes",11,"lemons",27); £ @fruit = %fruit; £ ×¢Ò⣬´ËÓï¾äÖÐÔªËØ´ÎÐò䶨Ò壬ÄÇôÊý×é±äÁ¿@fruit¿ÉÄÜΪ("grapes",11,"lemons",27)»ò("lemons",27,"grapes",11)¡£ £ ¹ØÁªÊý×é±äÁ¿Ö®¼ä¿ÉÒÔÖ±½Ó¸³Öµ£¬È磺%fruit2 = %fruit1; »¹¿ÉÒÔ°ÑÊý×é±äÁ¿Í¬Ê±¸³¸øÒ»Ð©¼òµ¥±äÁ¿ºÍÒ»¸ö¹ØÁªÊý×é±äÁ¿£¬È磺 £ ($var1, $var2, %myarray) = @list; £ ´ËÓï¾ä°Ñ@listµÄµÚÒ»¸öÔªËØ¸³¸ø$var1£¬µÚ¶þ¸ö¸³¸ø$var2£¬ÆäÓàµÄ¸³¸ø%myarray¡£ £ ×îºó£¬¹ØÁªÊý×é¿ÉÒÔͨ¹ý·µ»ØÖµÎªÁбíµÄÄÚǶº¯Êý»òÓû§¶¨ÒåµÄ×Ó³ÌÐòÀ´´´½¨£¬ÏÂÀýÖаÑsplit()º¯ÊýµÄ·µ»ØÖµ--Ò»¸öÁбí--¸³¸øÒ»¸ö¹ØÁªÊý×é±äÁ¿¡£ 1: #!/usr/local/bin/perl 2: 3: $inputline = 4: $inputline =~ s/^\s+|\s+\n$//g; 5: %fruit = split(/\s+/, $inputline); 6: print ("Number of bananas: $fruit\n"); £ ÔËÐнá¹ûÈçÏ£º oranges 5 apples 7 bananas 11 cherries 6 Number of bananas: 11 Æß¡¢ÔªËصÄÔöɾ £ Ôö¼ÓÔªËØÒѾ½²¹ý£¬¿ÉÒÔͨ¹ý¸øÒ»¸öδ³öÏÖ¹ýµÄÔªËØ¸³ÖµÀ´Ïò¹ØÁªÊý×éÖÐÔö¼ÓÐÂÔªËØ£¬Èç$fruit = 1;´´½¨Ï±êΪlime¡¢ÖµÎª1µÄÐÂÔªËØ¡£ £ ɾ³ýÔªËØµÄ·½·¨ÊÇÓÃÄÚǶº¯Êýdelete£¬ÈçÓûɾ³ýÉÏÊöÔªËØ£¬Ôò£º £ delete ($fruit); ×¢Ò⣺ 1¡¢Ò»¶¨ÒªÊ¹ÓÃdeleteº¯ÊýÀ´É¾³ý¹ØÁªÊý×éµÄÔªËØ£¬ÕâÊÇΨһµÄ·½·¨¡£ 2¡¢Ò»¶¨²»Òª¶Ô¹ØÁªÊý×éʹÓÃÄÚǶº¯Êýpush¡¢pop¡¢shift¼°splice£¬ÒòΪÆäÔªËØÎ»ÖÃÊÇËæ»úµÄ¡£ °Ë¡¢ÁгöÊý×éµÄË÷ÒýºÍÖµ £ ÉÏÃæÒѾÌáµ½£¬keys()º¯Êý·µ»Ø¹ØÁªÊý×éϱêµÄÁÐ±í£¬È磺 %fruit = ("apples", 9, £ £ £ £ "bananas", 23, £ £ £ £ "cherries", 11); @fruitsubs = keys(%fruits); £ ÕâÀ@fruitsubs±»¸³¸øapples¡¢bananas¡¢cherries¹¹³ÉµÄÁÐ±í£¬ÔÙ´ÎÌáÇë×¢Ò⣬´ËÁбíûÓдÎÐò£¬ÈôÏë°´×Öĸ˳ÐòÅÅÁУ¬¿ÉʹÓÃsort()º¯Êý¡£ £ @fruitindexes = sort keys(%fruits); £ ÕâÑù½á¹ûΪ("apples","bananas","cherries")¡£ÀàËÆµÄ£¬ÄÚǶº¯Êývalues()·µ»Ø¹ØÁªÊý×éÖµµÄÁÐ±í£¬È磺 %fruit = ("apples", 9, £ £ £ £ £ "bananas", 23, £ £ £ £ £ "cherries", 11); @fruitvalues = values(%fruits); £ ÕâÀ@fruitvalues¿ÉÄܵĽá¹ûΪ(9,23.11)£¬´ÎÐò¿ÉÄܲ»Í¬¡£ ¾Å¡¢ÓùØÁªÊý×éÑ»· £ Ç°ÃæÒѾ³öÏÖ¹ýÀûÓÃkeys()º¯ÊýµÄforeachÑ»·Óï¾ä£¬ÕâÖÖÑ»·Ð§ÂʱȽϵͣ¬ÒòΪÿ·µ»ØÒ»¸öϱ꣬»¹µÃÔÙȥѰÕÒÆäÖµ£¬È磺 foreach $holder (keys(%records)){ $record = $records; } £ PerlÌṩһÖÖ¸üÓÐЧµÄÑ»··½Ê½£¬Ê¹ÓÃÄÚǶº¯Êýeach()£¬È磺 %records = ("Maris", 61, "Aaron", 755, "Young", 511); while (($holder, $record) = each(%records)) { # stuff goes here } £ each()º¯Êýÿ´Î·µ»ØÒ»¸öË«ÔªËØµÄÁÐ±í£¬ÆäµÚÒ»¸öÔªËØÎªÏ±꣬µÚ¶þ¸öÔªËØÎªÏàÓ¦µÄÖµ£¬×îºó·µ»ØÒ»¸ö¿ÕÁÐ±í¡£ £ ×¢Ò⣺ǧÍò²»ÒªÔÚeach()Ñ»·ÖÐÌí¼Ó»òɾ³ýÔªËØ£¬·ñÔò»á²úÉú²»¿ÉÔ¤Áϵĺó¹û¡£ Ê®¡¢ÓùØÁªÊý×é´´½¨Êý¾Ý½á¹¹ £ ÓùØÁªÊý×é¿ÉÒÔÄ£ÄâÔÚÆäËü¸ß¼¶ÓïÑÔÖг£¼ûµÄ¶àÖÖÊý¾Ý½á¹¹£¬±¾½Ú½²ÊöÈçºÎÓÃ֮ʵÏÖ£ºÁ´±í¡¢½á¹¹ºÍÊ÷¡£ 1¡¢(µ¥)Á´±í £ Á´±íÊÇÒ»ÖֱȽϼòµ¥µÄÊý¾Ý½á¹¹£¬¿ÉÒÔ°´Ò»¶¨µÄ´ÎÐò´æÖüÖµ¡£Ã¿¸öÔªËØº¬ÓÐÁ½¸öÓò£¬Ò»¸öÊÇÖµ£¬Ò»¸öÊÇÒýÓ㨻ò³ÆÖ¸Õ룩£¬Ö¸ÏòÁ´±íÖÐÏÂÒ»¸öÔªËØ¡£Ò»¸öÌØÊâµÄÍ·Ö¸ÕëÖ¸ÏòÁ´±íµÄµÚÒ»¸öÔªËØ¡£ £ ÔÚPerlÖУ¬Á´±íºÜÈÝÒ×ÓùØÁªÊý×éʵÏÖ£¬ÒòΪһ¸öÔªËØµÄÖµ¿ÉÒÔ×÷ΪÏÂÒ»¸öÔªËØµÄË÷Òý¡£ÏÂÀýΪ°´×Öĸ˳ÐòÅÅÁеĵ¥´ÊÁ´±í£º %words = ("abel", "baker", £ £ £ £ "baker", "charlie", £ £ £ £ "charlie", "delta", £ £ £ £ "delta", ""); $header = "abel"; £ ÉÏÀýÖУ¬¼òµ¥±äÁ¿$headerº¬ÓÐÁ´±íÖеÚÒ»¸öµ¥´Ê£¬ËüͬʱҲÊǹØÁªÊý×éµÚÒ»¸öÔªËØµÄϱ꣬ÆäÖµbakerÓÖÊÇÏÂÒ»¸öÔªËØµÄϱ꣬ÒÀ´ËÀàÍÆ¡£ £ ϱêΪdeltaµÄ×îºóÒ»¸öÔªËØµÄֵΪ¿Õ´®£¬±íʾÁ´±íµÄ½áÊø¡£ £ ÔÚ½«Òª´¦ÀíµÄÊý¾Ý¸öÊýδ֪»òÆäËæ³ÌÐòÔËÐжøÔö³¤µÄÇé¿öÏ£¬Á´±íÊ®·ÖÓÐÓá£ÏÂÀýÓÃÁ´±í°´×Öĸ´ÎÐòÊä³öÒ»¸öÎļþÖеĵ¥´Ê¡£ 1 : #!/usr/local/bin/perl 2 : 3 : # initialize list to empty 4 : $header = ""; 5 : while ($line = 6 :£ # remove leading and trailing spaces 7 :£ $line =~ s/^\s+|\s+$//g; 8 :£ @words = split(/\s+/, $line); 9 :£ foreach $word (@words) { 10:£ £ # remove closing punctuation, if any 11:£ £ $word =~ s/[.,;:-]$//; 12:£ £ # convert all words to lower case 13:£ £ $word =~ tr/A-Z/a-z/; 14:£ £ &add_word_to_list($word); 15:£ } 16: } 17: &print_list; 18: 19: sub add_word_to_list { 20:£ local($word) = @_; 21:£ local($pointer); 22: 23:£ # if list is empty, add first item 24:£ if ($header eq "") { 25:£ £ $header = $word; 26:£ £ $wordlist = ""; 27:£ £ return; 28:£ } 29:£ # if word identical to first element in list, 30:£ # do nothing 31:£ return if ($header eq $word); 32:£ # see whether word should be the new 33:£ # first word in the list 34:£ if ($header gt $word) { 35:£ £ $wordlist = $header; 36:£ £ $header = $word; 37:£ £ return; 38:£ } 39:£ # find place where word belongs 40:£ $pointer = $header; 41:£ while ($wordlist ne "" && 42:£ £ $wordlist lt $word) { 43:£ £ $pointer = $wordlist; 44:£ } 45:£ # if word already seen, do nothing 46:£ return if ($word eq $wordlist); 47:£ $wordlist = $wordlist; 48:£ $wordlist = $word; 49: } 50: 51: sub print_list { 52:£ local ($pointer); 53:£ print ("Words in this file:\n"); 54:£ $pointer = $header; 55:£ while ($pointer ne "") { 56:£ £ print ("$pointer\n"); 57:£ £ $pointer = $wordlist; 58:£ } 59: } £ ÔËÐнá¹ûÈçÏ£º Here are some words. Here are more words. Here are still more words. ^D Words in this file: are here more some still words £ ´Ë³ÌÐò·ÖΪÈý¸ö²¿·Ö£º Ö÷³ÌÐò£º¶ÁÈ¡ÊäÈ벢ת»»µ½ÏàÓ¦µÄ¸ñʽ¡£ ×Ó³ÌÐò£ºadd_word_to_list£¬½¨Á¢ÅÅÐòµ¥´ÊÁ´±í¡£ ×Ó³ÌÐò£ºprint_list£¬Êä³öµ¥´ÊÁ´±í £ µÚ3~17ÐÐΪÖ÷³ÌÐò£¬µÚ4Ðгõʼ»¯Á´±í£¬½«±íÍ·±äÁ¿$headerÉèΪ¿Õ´®£¬µÚ5ÐÐÆðµÄÑ»·Ã¿´Î¶ÁȡһÐÐÊäÈ룬µÚ7ÐÐÈ¥µôÍ·¡¢Î²µÄ¿Õ¸ñ£¬µÚ8Ðн«¾ä×Ó·Ö¸î³Éµ¥´Ê¡£9~15ÐеÄÄÚÑ»·Ã¿´Î´¦ÀíÒ»¸öµ¥´Ê£¬Èç¹û¸Ãµ¥´ÊµÄ×îºóÒ»¸ö×Ö·ûÊDZêµã·ûºÅ£¬¾ÍÈ¥µô¡£µÚ13Ðаѵ¥´Êת»»³ÉȫСдÐÎʽ£¬µÚ14Ðд«µÝ¸ø×Ó³ÌÐòadd_word_to_list¡£ £ ×Ó³ÌÐòadd_word_to_listÏÈÔÚµÚ24Ðд¦¼ì²éÁ´±íÊÇ·ñΪ¿Õ¡£Èç¹ûÊÇ£¬µÚ25Ðн«µ¥´Ê¸³¸ø$header£¬26Ðд´½¨Á´±íµÚÒ»¸öÔªËØ£¬´æÖüÔÚ¹ØÁªÊý×é%wordlistÖС£Èç¹ûÁ´±í·Ç¿Õ£¬37Ðмì²éµÚÒ»¸öÔªËØÊÇ·ñÓë¸Ãµ¥´ÊÏàͬ£¬Èç¹ûÏàͬ£¬¾ÍÁ¢¿Ì·µ»Ø¡£ÏÂÒ»²½¼ì²éÕâһе¥´ÊÊÇ·ñÓ¦¸ÃΪÁ´±íµÚÒ»¸öÔªËØ£¬¼´Æä°´×Öĸ˳ÐòÏÈÓÚ$header¡£Èç¹ûÊÇÕâÑù£¬Ôò£º £ 1¡¢´´½¨Ò»¸öÐÂÔªËØ£¬Ï±êΪ¸Ãе¥´Ê£¬ÆäֵΪԵÚÒ»¸öµ¥´Ê¡£ £ 2¡¢¸Ãе¥´Ê¸³¸ø$header¡£ £ Èç¹û¸Ãе¥´Ê²»¸ÃΪµÚÒ»¸öÔªËØ£¬Ôò40~44ÐÐÀûÓþÖÓò±äÁ¿$pointerѰÕÒÆäºÏÊʵÄÓÐЧλÖã¬41~44ÐÐÑ»·µ½$wordlist´óÓÚ»òµÈÓÚ$wordΪֹ¡£½ÓÏÂÀ´46Ðв鿴¸Ãµ¥´ÊÊÇ·ñÒÑÔÚÁ´±íÖУ¬Èç¹ûÔھͷµ»Ø£¬·ñÔò47~48Ðн«ÆäÌí¼Óµ½Á´±íÖС£Ê×ÏÈ47Ðд´½¨ÐÂÔªËØ$wordlist£¬ÆäֵΪ$wordlist£¬Õâʱ$wordlistºÍ$wordlistÖ¸Ïòͬһ¸öµ¥´Ê¡£È»ºó£¬48Ðн«$wordlistµÄÖµ¸³Îª$word£¬¼´½«$wordlistÖ¸Ïò¸Õ´´½¨µÄÐÂÔªËØ$wordlist¡£ £ ×îºóµ±´¦ÀíÍê±Ïºó£¬×Ó³ÌÐòprint_list()ÒÀ´ÎÊä³öÁ´±í£¬¾ÖÓò±äÁ¿$pointerº¬ÓÐÕýÔÚÊä³öµÄÖµ£¬$wordlistΪÏÂÒ»¸öÒªÊä³öµÄÖµ¡£ £ ×¢£ºÒ»°ã²»ÐèÒªÓÃÁ´±íÀ´×öÕâЩ¹¤×÷£¬ÓÃsort()ºÍkeys()ÔÚ¹ØÁªÊý×éÖÐÑ»·¾Í×ã¹»ÁË£¬È磺 foreach $word (sort keys(%wordlist)) { # print the sorted list, or whatever } £ µ«ÊÇ£¬ÕâÀïÉæ¼°µÄÖ¸ÕëµÄ¸ÅÄîÔÚÆäËüÊý¾Ý½á¹¹ÖкÜÓÐÒâÒå¡£ 2¡¢½á¹¹ £ Ðí¶à±à³ÌÓïÑÔ¿ÉÒÔ¶¨Òå½á¹¹(structure)£¬¼´Ò»×éÊý¾ÝµÄ¼¯ºÏ¡£½á¹¹ÖеÄÿ¸öÔªËØÓÐÆä×Ô¼ºµÄÃû×Ö£¬²¢Í¨¹ý¸ÃÃû×ÖÀ´·ÃÎÊ¡£ £ Perl²»Ö±½ÓÌṩ½á¹¹ÕâÖÖÊý¾Ý½á¹¹£¬µ«¿ÉÒÔÓùØÁªÊý×éÀ´Ä£Äâ¡£ÀýÈçÄ£ÄâCÓïÑÔÖÐÈçϵĽṹ£º struce{ int field1; int field2; int field3; }mystructvar; £ ÎÒÃÇÒª×öµÄÊǶ¨ÒåÒ»¸öº¬ÓÐÈý¸öÔªËØµÄ¹ØÁªÊý×飬ϱê·Ö±ðΪfield1¡¢field2¡¢field3£¬È磺 %mystructvar = ("field1" , "" , £ £ "field2" , "" , £ £ "field3" , "" ,); £ ÏñÉÏÃæCÓïÑԵ͍ÒåÒ»Ñù£¬Õâ¸ö¹ØÁªÊý×é%mystrctvarÓÐÈý¸öÔªËØ£¬Ï±ê·Ö±ðΪfield1¡¢field2¡¢field3£¬¸÷ÔªËØ³õʼֵ¾ùΪ¿Õ´®¡£¶Ô¸÷ÔªËØµÄ·ÃÎʺ͸³ÖµÍ¨¹ýÖ¸¶¨Ï±êÀ´½øÐУ¬È磺 £ $mystructvar = 17; 3¡¢Ê÷ £ ÁíÒ»¸ö¾³£Ê¹ÓõÄÊý¾Ý½á¹¹ÊÇÊ÷¡£Ê÷ÓëÁ´±íÀàËÆ£¬µ«Ã¿¸ö½ÚµãÖ¸ÏòµÄÔªËØ¶àÓÚÒ»¸ö¡£×î¼òµ¥µÄÊ÷ÊǶþ²æÊ÷£¬Ã¿¸ö½ÚµãÖ¸ÏòÁíÍâÁ½¸öÔªËØ£¬³ÆÎª×ó×Ó½ÚµãºÍÓÒ×ӽڵ㣨»ò³Æº¢×Ó£©£¬Ã¿¸ö×Ó½ÚµãÓÖÖ¸ÏòÁ½¸öËï×ӽڵ㣬ÒÀ´ËÀàÍÆ¡£ £ ×¢£º´Ë´¦Ëù˵µÄÊ÷ÏñÉÏÊöÁ´±íÒ»ÑùÊǵ¥ÏòµÄ£¬Ã¿¸ö½ÚµãÖ¸ÏòÆä×ӽڵ㣬µ«×ӽڵ㲢²»Ö¸Ïò¸¸½Úµã¡£ £ Ê÷µÄ¸ÅÄî¿ÉÒÔÈçÏÂÃèÊö£º ÒòΪÿ¸ö×Ó½Úµã¾ùΪһ¸öÊ÷£¬ËùÒÔ×ó/ÓÒ×Ó½ÚµãÒ²³ÆÎª×ó/ÓÒ×ÓÊ÷¡££¨ÓÐʱ³Æ×ó/ÓÒ·ÖÖ§£© µÚÒ»¸ö½Úµã£¨²»ÊÇÈκνڵãµÄ×Ó½ÚµãµÄ½Úµã£©³ÆÎªÊ÷µÄ¸ù¡£ ûÓк¢×Ó£¨×ӽڵ㣩µÄ½Úµã³ÆÎªÒ¶½Úµã¡£ £ ÓжàÖÖʹÓùØÁªÊý×éʵÏÖÊ÷½á¹¹µÄ·½·¨£¬×îºÃµÄÒ»ÖÖÓ¦¸ÃÊÇ£º¸ø×Ó½Úµã·Ö±ð¼ÓÉÏleftºÍrightÒÔ·ÃÎÊÖ®¡£ÀýÈ磬alphaleftºÍalpharightÖ¸ÏòalphaµÄ×óÓÒ×ӽڵ㡣ÏÂÃæÊÇÓô˷½·¨´´½¨¶þ²æÊ÷²¢±éÀúµÄÀý³Ì£º 1 : #!/usr/local/bin/perl 2 : 3 : $rootname = "parent"; 4 : %tree = ("parentleft", "child1", 5 :£ £ £ £ £ "parentright", "child2", 6 :£ £ £ £ £ "child1left", "grandchild1", 7 :£ £ £ £ £ "child1right", "grandchild2", 8 :£ £ £ £ £ "child2left", "grandchild3", 9 :£ £ £ £ £ "child2right", "grandchild4"); 10: # traverse tree, printing its elements 11: &print_tree($rootname); 12: 13: sub print_tree { 14:£ local ($nodename) = @_; 15:£ local ($leftchildname, $rightchildname); 16: 17:£ $leftchildname = $nodename . "left"; 18:£ $rightchildname = $nodename . "right"; 19:£ if ($tree ne "") { 20:£ £ &print_tree($tree); 21:£ } 22:£ print ("$nodename\n"); 23:£ if ($tree ne "") { 24:£ £ &print_tree($tree); 25:£ } 26: } £ ½á¹ûÊä³öÈçÏ£º grandchild1 child1 grandchild2 parent grandchild3 child2 grandchild4 £ ¸Ã³ÌÐò´´½¨µÄ¶þ²æÊ÷ÈçÏÂͼ£º ½Ì³Ì/tree.gif" tppabs="/UpLoadFiles/NewsPhoto/rl5atree.gif"> £ ×¢Ò⺯Êýprint_tree()ÒÔ´ÎÐò¡°×ó×ÓÊ÷¡¢½Úµã¡¢ÓÒ×ÓÊ÷¡±À´Êä³ö¸÷½ÚµãµÄÃû×Ö£¬ÕâÖÖ±éÀú´ÎÐò³ÆÎª¡°×óÐò±éÀú¡±¡£Èç¹û°ÑµÚ22ÐÐÒÆµ½19ÐÐǰ£¬ÏÈÊä³ö½ÚµãÃ÷£¬ÔÙÊä³ö×ó×ÓÊ÷¡¢ÓÒ×ÓÊ÷£¬ÔòΪ¡°ÖÐÐò±éÀú¡±£¬Èç¹û°ÑµÚ22ÐÐÒÆµ½25Ðкó£¬Êä³ö´ÎÐòΪ×ó×ÓÊ÷¡¢ÓÒ×ÓÊ÷¡¢½Úµã£¬ÔòΪ¡°ÓÒÐò±éÀú¡±¡£ £ ¿ÉÒÔÓÃͬÑùµÄ·½·¨£¬¼´Á¬½Ó×Ö·û´®¹¹³Éϱ꣬À´´´½¨ÆäËüµÄÊý¾Ý½á¹¹£¬ÈçÊý¾Ý¿âµÈ¡£ µÚʮՠ¸ñʽ»¯Êä³ö £ ÎÒÃÇÒѾ¼û¹ýÓÃprintº¯Êý½«ÔʼµÄδ¸ñʽ»¯µÄÎı¾Êä³öµ½Îļþ£¬±¾Õ½²ÊöÈçºÎÓú¯ÊýwriteºÍ´òÓ¡¸ñʽÀ´Éú³É¸ñʽ»¯µÄÊä³ö¡£ _of_output . £ ´òÓ¡¸ñʽÃûformatnameµÄÃüÃû¹æÔòÓëÒ»°ã±äÁ¿Ïàͬ¡£½áÊøÐÐΪһ¸ö¾äºÅ£¬´ËÐв»ÄÜÓÐÈÎºÎÆäËü×Ö·û£¬°üÀ¨¿Õ¸ñ£¬¾äºÅ±ØÐëÊǸÃÐеÚÒ»¸ö×Ö·û¡£ £ ´òÓ¡¸ñʽµÄ¶¨ÒåÏó×Ó³ÌÐòÒ»Ñù¿ÉÒÔ·ÅÔÚÈκεط½£¬ÉõÖÁ¿ÉÒÔ·ÅÔÚÌõ¼þÓï¾äÖУ¬µ«ÊÇ×îºÃ°ÑËüÃǼ¯ÖзÅÔÚ³ÌÐòµÄ¿ªÍ·»ò½áβ¡£ 4 : write; 5 : 6 : format MYFORMAT = 7 : =================================== 8 : Here is the text I want to display. 9 : =================================== 10: . £ ½á¹ûÊä³öÈçÏ£º $ program =================================== Here is the text I want to display. =================================== $ £ Èç¹û²»ÓÃ$~Ö¸¶¨´òÓ¡¸ñʽ£¬Perl½âÊÍÆ÷¾Í¼Ù¶¨ÒªÊ¹ÓõĸñʽÃûÓëҪдÈëµÄÎļþ±äÁ¿Í¬Ãû£¬ÔÚ±¾ÀýÖУ¬Èç¹û²»Ö¸¶¨Ê¹ÓÃMYFORMAT£¬ÔòPerl½âÊÍÆ÷ÊÔͼʹÓÃÃûΪSTDOUTµÄ´òÓ¡¸ñʽ¡£ Èý¡¢ÔÚ´òÓ¡¸ñʽÖÐÏÔʾֵ £ ÎÒÃÇʹÓôòÓ¡¸ñʽµÄÖ÷ÒªÔÒòµ±È»ÊǸñʽ»¯´æÖüÔÚ¼òµ¥±äÁ¿»òÊý×é±äÁ¿ÖеÄÖµ´Ó¶øÉú³É¿É¶ÁÐԺõÄÊä³ö£¬ÕâһĿµÄÓá°ÖµÓò¡±À´ÊµÏÖ¡£Ã¿¸öÖµÓòÖ¸¶¨Ò»¸öÖµ£¬Èç±äÁ¿»ò±í´ïʽ£¬µ÷ÓÃwriteº¯Êýʱ£¬¸ÃÖµ¾ÍÒÔÖµÓòÖ¸¶¨µÄ¸ñʽÏÔʾ¡£ 1¡¢Í¨ÓõĴòÓ¡¸ñʽ £ ´òÓ¡¸ñʽµÄÒ»¸öȱµãÊǶ¨ÒåÖаüº¬Á˱äÁ¿Ãû£¬ÀýÈ磺 format MYFORMAT = ========================================================== The winning number is @<<<<< $winnum ========================================================== . £ µ±µ÷ÓÃwriteÊä³ö´Ë¸ñʽʱ£¬±ØÐë¼Ç×ÅËüʹÓÃÁ˱äÁ¿$winnum¡£ÓÃ×Ó³ÌÐòºÍ¾ÖÓò±äÁ¿¾Í¿ÉÒÔ´´½¨¸üͨÓõĴòÓ¡¸ñʽ¡£ÏÂÀý´ÓSTDINÊäÈëÒ»¸öÎļþ²¢Êä³öÎå¸ö³öÏÖÆµÂÊ×î¸ßµÄ×Öĸ¼°³öÏÖ´ÎÊý¡£ 1 : #!/usr/local/bin/perl 2 : 3 : while ($line = ) { 4 :£ $line =~ tr/A-Z/a-z/; 5 :£ $line =~ s/[^a-z]//g; 6 :£ @letters = split(//, $line); 7 :£ foreach $letter (@letters) { 8 :£ £ $lettercount += 1; 9 :£ } 10: } 11: 12: $~ = "WRITEHEADER"; 13: write; 14: $count = 0; 15: foreach $letter (reverse sort occurrences 16:£ £ £ (keys(%lettercount))) { 17:£ &write_letter($letter, $lettercount); 18:£ last if (++$count == 5); 19: } 20: 21: sub occurrences { 22:£ $lettercount <=> $lettercount; 23: } 24: sub write_letter { 25:£ local($letter, $value) = @_; 26: 27:£ $~ = "WRITELETTER"; 28:£ write; 29: } 30: format WRITEHEADER = 31: The five most frequently occurring letters are: 32: . 33: format WRITELETTER = 34:£ @: @<<<<<< 35:£ $letter, $value 36: . £ ÔËÐнá¹ûÈçÏ£º $ program This is a test file. This test file contains some input. The quick brown fox jumped over the lazy dog. ^D The five most frequently occurring letters are: £ £ £ t: 10 £ £ £ e: 9 £ £ £ i: 8 £ £ £ s: 7 £ £ £ o: 6 $ 2¡¢¸ñʽºÍ¾ÖÓò±äÁ¿ £ ÔÚÉÏÀýÖУ¬Äã¿ÉÄÜÒѾעÒâµ½×Ó³ÌÐòwrite_letterµ÷ÓÃwriteÊä³ö×Öĸ¼°Æä³öÏÖ´ÎÊý£¬¼´Ê¹¸ñʽ¶¨ÒåÔÚ×Ó³ÌÐòÍⲿÈÔÄÜÕý³£¹¤×÷¡£ÔÚµÚ17ÐÐÖн«×Öĸ¼°Æä³öÏÖ´ÎÊý´«µÝ¸ø¸Ã×Ó³ÌÐò£¬ÔÚ×Ó³ÌÐòÖУ¬´òÓ¡¸ñʽʹÓþÖÓò±äÁ¿$letterºÍ$value£¬ÕâÑù±£Ö¤ÁËÔÚforeachÑ»·ÖÐÿ´ÎÊä³öµ±Ç°µÄ×ÖĸºÍÖµ¡£ £ È»¶øÒª×¢ÒâµÄÊÇ£¬Ê¹ÓÃmy¶¨ÒåµÄ¾ÖÓò±äÁ¿ÒªÇó¸ñʽ¶¨ÒåÔÚ×Ó³ÌÐòÄÚ²¿£¬·ñÔò¾Í²»»áÊä³ö£¬Òò´Ë£¬ÓÃwriteÊä³öµÄ¾ÖÓò±äÁ¿Ò»¶¨ÒªÓÃlocal¶¨Òå¡££¨localºÍmyÏê¼û¡¶×Ó³ÌÐò¡·Ò»Õ£© £ ×¢£ºPerl4ÖÐûÓÐmyº¯Êý£¬¹Ê²»»áÓдËÎÊÌâ¡£ 3¡¢Ñ¡ÔñÖµÓò¸ñʽ £ ÎÒÃÇÒѾ֪µÀÁË´òÓ¡¸ñʽºÍwriteº¯ÊýÔõô¹¤×÷£¬ÏÖÔÚÀ´¿´¿´ÖµÓòµÄ¸ñʽ£¬¼ûÏÂ±í£º ¸ñʽֵÓòº¬Òå @<<<×ó¶ÔÆëÊä³ö @>>>ÓÒ¶ÔÆëÊä³ö @|||ÖÐ¶ÔÆëÊä³ö @##.##£ ¹Ì¶¨¾«¶ÈÊý×Ö£ @*¶àÐÐÎı¾ £ ÿ¸öÖµÓòµÄµÚÒ»¸ö×Ö·ûÊÇÐÐÌî³ä·û£¬µ±Ê¹ÓÃ@×Ö·ûʱ£¬²»×öÎı¾¸ñʽ»¯¡£¶ÔÎı¾µÄ¸ñʽ»¯ÉÔºóÀ´½²¡£ £ ÔÚÉϱíÖУ¬³ýÁ˶àÐÐÖµÓò@*£¬Óò¿í¶¼µÈÓÚÆäÖ¸¶¨µÄ°üº¬×Ö·û@ÔÚÄÚµÄ×Ö·û¸öÊý£¬ÀýÈ磺 £ £ @###.## £ ±íʾÆß¸ö×Ö·û¿í£¬Ð¡ÊýµãǰËĸö£¬Ð¡ÊýµãºóÁ½¸ö¡£ 4¡¢Êä³öÖµÓò×Ö·û £ ÔÚ´òÓ¡¸ñʽÀï£¬ÌØ¶¨×Ö·ûÈç@¡¢<ºÍ>±»¿´×÷ÖµÓò¶¨Ò壬ÄÇôÈçºÎ½«ËüÃÇÊä³öÄØ£¿·½·¨ÈçÏ£º format SPECIAL = This line contains the special character @. "@" . ËÄ¡¢Êä³öµ½ÆäËüÎļþ £ ȱʡµØ£¬º¯Êýwrite½«½á¹ûÊä³öµ½±ê×¼Êä³öÎļþSTDOUT£¬ÎÒÃÇÒ²¿ÉÒÔʹËü½«½á¹ûÊä³öµ½ÈÎÒâÆäËüµÄÎļþÖС£×î¼òµ¥µÄ·½·¨¾ÍÊǰÑÎļþ±äÁ¿×÷Ϊ²ÎÊý´«µÝ¸øwrite£¬È磺 £ £ write (MYFILE); £ ÕâÑù£¬write¾ÍÓÃȱʡµÄÃûΪMYFILEµÄ´òÓ¡¸ñʽÊä³öµ½ÎļþMYFILEÖУ¬µ«ÊÇÕâÑù¾Í²»ÄÜÓÃ$~±äÁ¿À´¸Ä±äËùʹÓõĴòÓ¡¸ñʽ¡£ÏµÍ³±äÁ¿$~Ö»¶ÔȱʡÎļþ±äÁ¿Æð×÷Óã¬ÎÒÃÇ¿ÉÒԸıäȱʡÎļþ±äÁ¿£¬¸Ä±ä$~£¬ÔÙµ÷ÓÃwrite£¬ÀýÈ磺 £ £ select (MYFILE); £ £ $~ = "MYFORMAT"; £ £ write; £ µ±select¸Ä±äȱʡÎļþ±äÁ¿Ê±£¬Ëü·µ»Øµ±Ç°È±Ê¡Îļþ±äÁ¿µÄÄÚ²¿±íʾ£¬ÕâÑùÎÒÃǾͿÉÒÔ´´½¨×Ó³ÌÐò£¬°´×Ô¼ºµÄÏë·¨Êä³ö£¬ÓÖ²»Ó°Ïì³ÌÐòµÄÆäËü²¿·Ö£¬ÈçÏ£º sub write_to_stdout { local ($savefile, $saveformat); $savefile = select(STDOUT); $saveformat = $~; $~ = "MYFORMAT"; write; $~ = $saveformat; select($savefile); } Îå¡¢·ÖÒ³ £ ÔÚÊä³öµ½´òÓ¡»úʱ£¬¿ÉÒÔÔÚÿҳ¶¥²¿Êä³öÏàÓ¦µÄÐÅÏ¢£¬ÕâÑùµÄÌØÊâÎı¾½Ðҳü¡£¶¨Òåҳüʵ¼ÊÉϾÍÊǶ¨ÒåÃûΪfilename_TOPµÄ´òÓ¡¸ñʽ£¬ÀýÈç¸ø±ê×¼Êä³öÎļþ¶¨ÒåҳüÈçÏ£º £ £ format STDOUT_TOP = £ £ Consolidated Widgets Inc. 1994 Annual Report £ £ . £ ÔÚҳüµÄ¶¨ÒåÖÐÒ²¿ÉÒÔ°üº¬ÖµÓò£¬Ò³Ã¼Öо³£Ê¹ÓõÄÒ»¸öÌØÊâÖµÊǵ±Ç°Ò³Â룬´æÖüÔÚϵͳ±äÁ¿$%ÖУ¬È磺 £ £ format STDOUT_TOP = £ £ Page @<<. £ £ $% £ £ . £ ÎÒÃÇÒ²¿ÉÒÔͨ¹ý¸Ä±äϵͳ±äÁ¿$^¸Ä±ä¶¨ÒåҳüµÄ´òÓ¡¸ñʽÃû£¬Óë$~Ò»Ñù£¬$^Ö»¶Ôµ±Ç°È±Ê¡ÎļþÆð×÷Óã¬Òò´Ë¿ÉÒÔÓëselectº¯Êý½áºÏʹÓᣠ£ ȱʡÇé¿öÏ£¬Ã¿Ò³³¤¶ÈΪ60ÐУ¬¿ÉÒÔͨ¹ý¸Ä±ä$=À´¸Ä±äÒ³³¤£¬È磺 £ £ $= = 66; #Ò³³¤ÉèΪ66ÐÐ £ ´Ë¸³ÖµÓï¾ä±ØÐë³öÏÖÔÚµÚÒ»¸öwriteÓï¾äǰ¡£ £ ×¢£ºÒ»°ãʹÓ÷ÖÒ³»úÖÆÊ±²»ÓÃprintº¯Êý£¬ÒòΪµ±ÓÃwriteÊä³öʱ£¬Perl½âÊÍÆ÷¸ú×ÙÿҳµÄµ±Ç°Ðкš£Èç¹û±ØÐëʹÓÃprint¶øÓÖ²»´òÂÒÒ³¼ÆÊý£¬¿ÉÒÔµ÷Õûϵͳ±äÁ¿$-¡£$-µÄº¬ÒåÊǵ±Ç°Ðе½Ò³Ä©Ö®¼äµÄÐÐÊý£¬µ±$-´ïµ½Áãʱ£¬¾Í¿ªÊ¼ÐµÄÒ»Ò³£¬µ÷Õû·½·¨È磺 £ £ print ("Here is a line of output\n"); £ £ $- -= 1; Áù¡¢¸ñʽ»¯³¤×Ö·û´® £ ÎÒÃÇÒѾѧ¹ýÖµÓò@*¿ÉÒÔÊä³ö¶àÐÐÎı¾£¬µ«ËüÍêÈ«½«×Ö·û´®ÔÑùÊä³ö£¬²»¼ÓÒÔ¸ñʽ»¯¡£ÔÚPerlÖжԳ¤×Ö·û´®£¨°üº¬»»ÐУ©½øÐиñʽ»¯µÄÖµÓò¶¨ÒåºÜ¼òµ¥£¬Ö»Ðè°Ñ´òÍ·µÄ@×Ö·û»»³É^¾ÍÐÐÁË£¬ÕâÖÖÎı¾¸ñʽ»¯ÖУ¬Perl½âÊÍÆ÷ÔÚÒ»ÐÐÖзÅÖþ¡¿ÉÄܶàµÄµ¥´Ê¡£Ã¿µ±Êä³öÒ»ÐÐÎı¾£¬±»Êä³öµÄ×Ó´®¾Í´Ó±äÁ¿ÖÐɾ³ý£¬ÔÙ´ÎÔÚÓòÖµÖÐʹÓøñäÁ¿¾Í°ÑʣϵÄ×Ö·û´®¼ÌÐø°´¸ñʽÊä³ö¡£µ±ÄÚÈÝÒÑÊä³öÍê±Ï£¬¸Ã±äÁ¿¾Í³ÉÁ˿մ®£¬ÔÙÊä³ö¾Í»áÊä³ö¿ÕÐУ¬Îª±ÜÃâÊä³ö¿ÕÐУ¬¿ÉÒÔÔÚÖµÓò¸ñʽÐÐÊ×¼ÓÒ»¸ö~×Ö·û¡£¼ûÏÂÀý£º 1 : #!/usr/local/bin/perl 2 : 3 : @quotation = 4 : $quotation = join("", @quotation); 5 : $~ = "QUOTATION"; 6 : write; 7 : 8 : format QUOTATION = 9 : Quotation for the day: 10: ----------------------------- 11: ~£ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 12: $quotation 13: ~£ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 14: $quotation 15: ~£ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 16: $quotation 17: ----------------------------- 18: . £ ÔËÐнá¹ûÈçÏ£º $ program Any sufficiently advanced programming language is indistinguishable from magic. ^D Quotation for the day: ----------------------------- £ Any sufficiently advanced programming language is £ indistinguishable from magic. ----------------------------- $ £ Èç¹û°Ñ´òÓ¡¸ñʽÖÐÐÐÊ×µÄ~×Ö·ûÈ¥µô£¬ÉÏÃæµÄÊä³ö½á¹ûÖоͻá¶àÒ»ÐпÕÐС£ºÜÃ÷ÏÔ£¬µ±×Ö·û´®³¤¶È²»Ã÷ȷʱ£¬ÕâÖÖÓ÷¨ºÜ²»·½±ã£¬ÔÒò¾ÍÔÚÓÚËüÖ¸Ã÷ÁËÊä³öµÄÐÐÊýÉÏÏÞ£¬³¬¹ýÕâÒ»ÉÏÏÞµÄ×Ö·û¾Í²»»á±»Êä³ö£¬½â¾ö·½·¨ºÜ¼òµ¥£¬¾ÍÊÇÔÚÓòÖµ¸ñʽÐÐÊ×¼ÓÁ½¸ö~×Ö·û£¬ÕâÑù¾Í»á³ÖÐø°´¸ñʽÊä³öÎı¾Ö±µ½Êä³öÍê±Ï£¬Óô˷½·¨°ÑÉÏÊö³ÌÐò¸ÄдÈçÏ£º 1 : #!/usr/local/bin/perl 2 : 3 : @quotation = 4 : $quotation = join("", @quotation); 5 : $~ = "QUOTATION"; 6 : write; 7 : 8 : format QUOTATION = 9 : Quotation for the day: 10: ----------------------------- 11: ~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 12: $quotation 13: ----------------------------- 14: . £ ÕâÑùÔËÐнá¹ûÏàͬ¡£ Æß¡¢ÓÃprintf¸ñʽ»¯Êä³ö £ »¹ÓÐÒ»ÖÖÈÝÒ×ÕÆÎÕºÍʹÓõĸñʽ»¯Êä³öº¯Êý£¬ÄǾÍÊÇprintf£¬ËüÓëCÓïÑÔÖеÄprintf»ù±¾ÉÏÊÇÏàͬµÄ¡£printfÓÐÁ½¸ö²ÎÊý£¬Ò»¸öÊÇ×Ö·û´®£¬ÆäÖк¬ÓÐÒ»¸ö»ò¶à¸öÓòÖµÐÎʽ£¬ÁíÒ»¸öÊÇÓë¸÷ÓòÖµÏà¶ÔÓ¦µÄ±äÁ¿Öµ°´Ò»¶¨¸ñÊ½Ìæ»»£¬È磺 £ £ printf("The number I want to print is %d.\n", $number); £ ¸÷ÖÖÓòÖµÐÎʽÈçÏÂ±í£º ÓòÖµ£ º¬Òå %cµ¥¸ö×Ö·û %dÊ®½øÖÆÕûÊý %e¿ÆÑ§¼ÆÊý·¨ÐÎʽµÄ¸¡µãÊý£ %fÆÕͨÐÎʽ£¨¶¨µã£©¸¡µãÊý %g½ôËõÐÎʽ¸¡µãÊý %o°Ë½øÖÆÕûÊý %s×Ö·û´® %uÎÞ·ûºÅÕûÊý %xÊ®Áù½øÖÆÕûÊý £ һЩʹÓÃϸ½ÚÈçÏ£º 1¡¢ÔÚ¸ñʽd¡¢o¡¢u»òxÖУ¬Èç¹ûÕûÊýÖµ½Ï´ó»ò¿ÉÄܽϴ󣬿ɼӸöl×Ö·û£¬ÒâΪ³¤ÕûÐÍ£¬Èç%ld¡£ 2¡¢%×Ö·ûºó¼ÓÕýÕûÊý±íʾ¸ÃÓòµÄ×îС¿í¶È£¬Èç¹ûÊä³ö½á¹û¿í¶È²»×㣬ÔòÏòÓÒ¶ÔÆë£¬Ç°ÃæÓÿոñ²¹×㣬Èç¹û¸ÃÕýÕûÊýÒÔÊý×Ö0´òÍ·£¬Ôò²¹×ã×Ö·ûΪ0¡£Èô%×Ö·ûºóΪ¸ºÕûÊý£¬Ôò½á¹ûÏòÓÒ¶ÔÆë¡£ 3¡¢¸¡µãÊýÓòÖµ(%c¡¢%fºÍ%g)ÖпÉÒÔÖ¸¶¨Ð¡ÊýµãǰºóµÄ¿í¶È£¬Èç%8.3fÒâΪ×Ü¿í¶ÈΪ8¸ö×Ö·û£¬Ð¡Êýµãºó£¨¼´Ð¡Êý²¿·Ö£©Îª3¸ö×Ö·û£¬¶à³öµÄСÊý²¿·ÖËÄÉáÎåÈë¡£ 4¡¢ÔÚÕûÊý¡¢×Ö·û»ò×Ö·û´®µÄÖµÓòÖÐʹÓÃÈçÉϵÄСÊýÐÎʽn.m£¬ÕûÊý²¿·ÖnΪ×Ü¿í¶È£¬Ð¡Êý²¿·ÖmΪÊä³ö½á¹ûµÄ×î´ó¿í¶È£¬ÕâÑù¾Í±£Ö¤ÁËÊä³ö½á¹ûǰÖÁÉÙÓÐn-m¸ö¿Õ¸ñ¡£ |

5Â¥2005-06-14 19:17:42
miRNA
ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 16.6
- ½ð±Ò: 13289.9
- ºì»¨: 4
- Ìû×Ó: 4967
- ÔÚÏß: 10.3Сʱ
- ³æºÅ: 56231
- ×¢²á: 2005-01-07
- רҵ: ½ðÊôÓлú»¯Ñ§
¡ï
yuefour(½ð±Ò+1):ÐÁ¿àÁË
yuefour(½ð±Ò+1):ÐÁ¿àÁË
|
µÚʮһÕ£ Îļþϵͳ £ ±¾ÕÂËù½²µÄº¯Êý¶àÊýʹÓÃÁËUNIX²Ù×÷ϵͳµÄÌØÐÔ£¬ÔÚ·ÇUNIXϵͳÖУ¬Ò»Ð©º¯Êý¿ÉÄÜûÓж¨Òå»òÓв»Í¬µÄ¹¤×÷·½Ê½£¬Ê¹ÓÃʱÇë²é¿´PerlÁª»úÎĵµ¡£ Ò»¡¢ÎļþÊäÈë/Êä³öº¯Êý £ ±¾½Ú½²Êö´ÓÎļþÖжÁÈ¡ÐÅÏ¢ºÍÏòÎļþдÈëÐÅÏ¢µÄÄÚÖÿ⺯Êý¡£ 1¡¢»ù±¾I/Oº¯Êý £ һЩI/Oº¯ÊýÔÚÇ°ÃæµÄÕ½ÚÖÐÒÑÓн²Êö£¬Èç open£ºÔÊÐí³ÌÐò·ÃÎÊÎļþ close£ºÖÕÖ¹Îļþ·ÃÎÊ print£ºÎļþдÈë×Ö·û´® write£ºÏòÎļþдÈë¸ñʽ»¯ÐÅÏ¢ printf£º¸ñʽ»¯×Ö·û´®²¢Êä³öµ½Îļþ £ ÕâÀï¼òµ¥»Ø¹Ëһϣ¬ÔÙ½²Ò»Ð©Ç°ÃæÎ´Ìáµ½µÄº¯Êý¡£ 1)openº¯Êý £ openº¯Êý½«Îļþ±äÁ¿ÓëijÎļþÁªÏµÆðÀ´£¬Ìṩ·ÃÎÊÎļþµÄ½Ó¿Ú£¬ÀýÈ磺open(MYVAR, "/u/file"); Èç¹ûÎļþ´ò¿ª³É¹¦£¬Ôò·µ»Ø·ÇÁãÖµ£¬·ñÔò·µ»ØÁ㡣ȱʡµØ£¬open´ò¿ªÎļþÓÃÒÔ¶ÁÈ¡ÆäÄÚÈÝ£¬ÈôÏë´ò¿ªÎļþÒÔдÈëÄÚÈÝ£¬ÔòÔÚÎļþÃûǰ¼Ó¸ö´óÓںţºopen(MYVAR, ">/u/file"); ÏòÒÑÓеÄÎļþĩβÌí¼ÓÄÚÈÝÓÃÁ½¸ö´óÓںţºopen(MYVAR, ">>/u/file"); ÈôÏë´ò¿ªÎļþ×÷ΪÊý¾Ýµ¼ÏòµÄÃüÁÔòÔÚÃüÁîǰ¼ÓÉϹܵÀ·û(|)£ºopen(MAIL, "|mail dave"); 2)ÓÃopenÖØ¶¨ÏòÊäÈë £ ¿ÉÒÔ°Ñ´ò¿ªµÄÎļþ¾ä±úÓÃ×÷Ïò³ÌÐòÊäÈëÊý¾ÝµÄÃüÁ·½·¨ÊÇÔÚÃüÁîºó¼Ó¹ÜµÀ·û(|)£¬È磺 £ open(CAT, "cat file*|"); £ ¶ÔopenµÄµ÷ÓÃÔËÐÐÃüÁîcat file* £¬´ËÃüÁî´´½¨Ò»¸öÁÙʱÎļþ£¬Õâ¸öÎļþµÄÄÚÈÝÊÇËùÓÐÒÔfile´òÍ·µÄÎļþµÄÄÚÈÝÁ¬½Ó¶ø³É£¬´ËÎļþ¿´×÷ÊäÈëÎļþ£¬¿ÉÓÃÎļþ±äÁ¿CAT·ÃÎÊ£¬È磺 £ $input = ; £ ÏÂÃæµÄÀý×ÓʹÓÃÃüÁîwµÄÊä³öÀ´Áгöµ±Ç°µÇ¼µÄËùÓÐÓû§Ãû¡£ 1 : #!/usr/local/bin/perl 2 : 3 : open (WOUT, "w|"); 4 : $time = 5 : $time =~ s/^ *//; 6 : $time =~ s/ .*//; 7 : ; # skip headings line 8 : @users = ; 9 : close (WOUT); 10: foreach $user (@users) { 11:£ $user =~ s/ .*//; 12: } 13: print ("Current time: $time"); 14: print ("Users logged on:\n"); 15: $prevuser = ""; 16: foreach $user (sort @users) { 17:£ if ($user ne $prevuser) { 18:£ £ print ("\t$user"); 19:£ £ $prevuser = $user; 20:£ } 21: } £ ½á¹ûÊä³öÈçÏ£º Current time: 4:25pm Users logged on: dave kilroy root zarquon £ wÃüÁîÁгöµ±Ç°Ê±¼ä¡¢ÏµÍ³¸ºÔغ͵ǼµÄÓû§£¬ÒÔ¼°Ã¿¸öÓû§µÄ×÷ҵʱ¼äºÍµ±Ç°ÔËÐеÄÃüÁÈ磺 4:25pm£ up 1 day,£ 6:37,£ 6 users,£ load average: 0.79, 0.36, 0.28 User£ £ tty£ £ £ login@£ idle£ JCPU£ PCPU what dave£ £ ttyp0£ £ 2:26pm£ £ £ £ £ 27£ £ £ 3 w kilroy£ ttyp1£ £ 9:01am£ 2:27£ 1:04£ £ 11 -csh kilroy£ ttyp2£ £ 9:02am£ £ 43£ 1:46£ £ 27 rn root£ £ ttyp3£ £ 4:22pm£ £ 2£ £ £ £ £ £ £ -csh zarquon£ ttyp4£ £ 1:26pm£ £ 4£ £ 43£ £ 16 cc myprog.c kilroy£ ttyp5£ £ 9:03am£ £ £ £ 2:14£ £ 48 /usr/games/hack £ ÉÏÀýÖдÓwÃüÁîµÄÊä³öÖÐÈ¡³öËùÐèµÄÐÅÏ¢£ºµ±Ç°Ê±¼äºÍµÇ¼µÄÓû§Ãû¡£µÚ3ÐÐÔËÐÐwÃüÁ´Ë´¦¶ÔopenµÄµ÷ÓÃÖ¸¶¨wµÄÊä³öÓÃ×÷³ÌÐòµÄÊäÈ룬ÓÃÎļþ±äÁ¿WOUTÀ´·ÃÎʸÃÊäÈë¡£µÚ4ÐжÁÈ¡µÚÒ»ÐÐÐÅÏ¢£¬¼´£º £ 4:25pm up 1 day, 6:37, 6 users, load average: 0.79, 0.36, 0.28 £ ½ÓÏÂÀ´µÄÁ½ÐдÓÕâÐÐÖгéÈ¡³öʱ¼ä¡£Ê×ÏÈ£¬µÚ5ÐÐɾ³ýÆðʼµÄ¿Õ¸ñ£¬È»ºóµÚ6ÐÐɾȥ³ýʱ¼äºÍ½áβ»»ÐзûÖ®¼äµÄËùÓÐ×Ö·û£¬´æÈë±äÁ¿$time¡£ £ µÚ7ÐдÓWOUT¶ÁÈ¡µÚ¶þÐУ¬ÕâÐÐÖÐÎÞÓÐÓÃÐÅÏ¢£¬¹Ê²»×÷´¦Àí¡£µÚ8ÐаÑʣϵÄÐи³¸øÊý×é@users£¬È»ºóµÚ9ÐйرÕWOUT£¬ÖÕÖ¹ÔËÐÐwÃüÁîµÄ½ø³Ì¡£ £ @usersÖеÄÿ¸öÔªËØ¶¼ÊÇÒ»ÐÐÓû§ÐÅÏ¢£¬ÒòΪ±¾³ÌÐòÖ»ÐèҪÿÐеĵÚÒ»¸öµ¥´Ê£¬¼´Óû§Ãû£¬¹Ê10~12ÐÐÈ¥µô³ý»»ÐзûÍâµÄÆäËü×Ö·û£¬Õâһѻ·½áÊøºó£¬@usersÖÐֻʣÏÂÓû§ÃûµÄÁÐ±í¡£ £ µÚ13ÐÐÊä³ö´æÖüÔÚ$timeÖеÄʱ¼ä£¬×¢ÒâÕâʱprint²»ÐèÒª¼ÓÉÏ»»Ðзû£¬ÒòΪ$timeÖÐÓС£16~21ÐжÔ@usersÖеÄÓû§ÃûÅÅÐò²¢Êä³ö¡£ÒòΪͬһ¸öÓû§¿ÉÒÔ¶à´ÎµÇ¼£¬ËùÒÔÓÃ$preuser´æÖüÊä³öµÄ×îºóÒ»¸öÓû§Ãû£¬Ï´ÎÊä³öÊý×éÔªËØ$userʱ£¬Èç¹ûÆäÓë$preserÏàµÈ£¬Ôò²»Êä³ö¡£ 3)ÎļþÖØ¶¨Ïò £ Ðí¶àUNIX shell¿ÉÒ԰ѱê×¼Êä³öÎļþ(STDOUT)ºÍ±ê×¼´íÎóÎļþ(STDERR)¶¼Öض¨Ïòµ½Í¬Ò»¸öÎļþ£¬ÀýÈçÔÚBourne Shell£¨sh£©ÖУ¬ÃüÁî £ $ foo > file1 2>&1 £ ÔËÐÐÃüÁîfoo²¢°ÑÊä³öµ½±ê×¼Êä³öÎļþºÍ±ê×¼´íÎóÎļþµÄÄÚÈÝ´æÖüµ½Îļþfile1ÖС£ÏÂÃæÊÇÓÃPerlʵÏÖÕâÒ»¹¦ÄܵÄÀý×Ó£º 1: #!/usr/local/bin/perl 2: 3: open (STDOUT, ">file1") || die ("open STDOUT failed"); 4: open (STDERR, ">&STDOUT") || die ("open STDERR failed"); 5: print STDOUT ("line 1\n"); 6: print STDERR ("line 2\n"); 7: close (STDOUT); 8: close (STDERR); £ ÔËÐкó£¬Îļþfile1ÖеÄÄÚÈÝΪ£º £ £ line 2 £ £ line 1 £ ¿ÉÒÔ¿´µ½£¬ÕâÁ½Ðв¢Î´°´ÎÒÃÇÏëÏóµÄ˳Ðò´æÖü£¬ÎªÊ²Ã´ÄØ£¿ÎÒÃÇÀ´·ÖÎöÒ»ÏÂÕâ¶Î³ÌÐò¡£ £ µÚ3ÐÐÖØ¶¨Ïò±ê×¼Êä³öÎļþ£¬·½·¨ÊÇ´ò¿ªÎļþfile1½«ËüÓëÎļþ±äÁ¿STDOUT¹ØÁª£¬ÕâÒ²¹Ø±ÕÁ˱ê×¼Êä³öÎļþ¡£µÚ4ÐÐÖØ¶¨Ïò±ê×¼´íÎóÎļþ£¬²ÎÊý>&STDOUT¸æËßPerl½âÊÍÆ÷ʹÓÃÒÑ´ò¿ª²¢ÓëSTDOUT¹ØÁªµÄÎļþ£¬¼´Îļþ±äÁ¿STDERRÖ¸ÏòÓëSTDOUTÏàͬµÄÎļþ¡£µÚ5¡¢6ÐзֱðÏòSTDOUTºÍSTDERRдÈëÊý¾Ý£¬ÒòΪÕâÁ½¸öÎļþ±äÁ¿Ö¸Ïòͬһ¸öÎļþ£¬¹ÊÁ½ÐÐ×Ö·û´®¾ùдµ½Îļþfile1ÖУ¬µ«Ë³ÐòÈ´ÊÇ´íÎóµÄ£¬Ôõô»ØÊÂÄØ£¿ £ ÎÊÌâÔÚÓÚUNIX¶ÔÊä³öµÄ´¦ÀíÉÏ¡£µ±Ê¹ÓÃprint£¨»òÆäËüº¯Êý£©Ð´ÈëSTDOUTµÈÎļþʱ£¬UNIX²Ù×÷ÏµÍ³ÕæÕýËù×öµÄÊǰÑÊý¾Ý¿½±´µ½Ò»Æ¬ÌØÊâµÄÄÚ´æ¼´»º³åÇøÖУ¬½ÓÏÂÀ´µÄÊä³ö²Ù×÷¼ÌÐøÐ´È뻺³åÇøÖ±µ½Ð´Âú£¬µ±»º³åÇøÂúÁË£¬¾Í°ÑÈ«²¿Êý¾Ýʵ¼ÊÊä³ö¡£ÏóÕâÑùÏÈдÈ뻺³åÇøÔÙ°ÑÕû¸ö»º³åÇøµÄÄÚÈÝÊä³ö±Èÿ´Î¶¼Êµ¼ÊÊä³öËù»¨·ÑµÄʱ¼äÒªÉٵö࣬ÒòΪһ°ãÀ´Ëµ£¬I/O±ÈÄÚ´æ²Ù×÷ÂýµÃ¶à¡£ £ ³ÌÐò½áÊøÊ±£¬ÈκηǿյĻº³åÇø¶¼±»Êä³ö£¬È»¶ø£¬ÏµÍ³ÎªSTDOUTºÍSTDERR·Ö±ðά»¤Ò»Æ¬»º³åÇø£¬²¢ÇÒÏÈÊä³öSTDERRµÄÄÚÈÝ£¬Òò´Ë´æÖüÔÚSTDERRµÄ»º³åÇøÖеÄÄÚÈÝline 2³öÏÖÔÚ´æÖüÔÚSTDOUTµÄ»º³åÇøÖеÄÄÚÈÝline 1֮ǰ¡£ £ ΪÁ˽â¾öÕâ¸öÎÊÌ⣬¿ÉÒÔ¸æËßPerl½âÊÍÆ÷²»¶ÔÎļþʹÓûº³å£¬·½·¨Îª£º £ £ 1¡¢ÓÃselectº¯ÊýÑ¡ÔñÎļþ £ £ 2¡¢°ÑÖµ1¸³¸øÏµÍ³±äÁ¿$| £ ϵͳ±äÁ¿$|Ö¸¶¨ÎļþÊÇ·ñ½øÐлº³å¶ø²»¹ÜÆäÊÇ·ñÓ¦¸ÃʹÓûº³å¡£Èç¹û$|Ϊ·ÇÁãÖµÔò²»Ê¹Óûº³å¡£$|Óëϵͳ±äÁ¿$~ºÍ$^Ðͬ¹¤×÷£¬µ±Î´µ÷ÓÃselectº¯Êýʱ£¬$|Ó°Ï쵱ǰȱʡÎļþ¡£ÏÂÀý±£Ö¤ÁËÊä³öµÄ´ÎÐò£º 1 : #!/usr/local/bin/perl 2 : 3 : open (STDOUT, ">file1") || die ("open STDOUT failed"); 4 : open (STDERR, ">&STDOUT") || die ("open STDERR failed"); 5 : $| = 1; 6 : select (STDERR); 7 : $| = 1; 8 : print STDOUT ("line 1\n"); 9 : print STDERR ("line 2\n"); 10: close (STDOUT); 11: close (STDERR); £ ³ÌÐòÔËÐкó£¬Îļþfile1ÖÐÄÚÈÝΪ£º £ £ line 1 £ £ line 2 £ µÚ5Ðн«$|¸³³É1£¬¸æËßPerl½âÊÍÆ÷µ±Ç°È±Ê¡Îļþ²»½øÐлº³å£¬ÒòΪδµ÷ÓÃselect£¬µ±Ç°µÄȱʡÎļþÎªÖØ¶¨Ïòµ½Îļþfile1µÄSTDOUT¡£µÚ6Ðн«µ±Ç°È±Ê¡ÎļþÉèΪSTDERR£¬µÚ7ÐÐÓÖÉèÖÃ$|Ϊ1£¬¹ØµôÁËÖØ¶¨Ïòµ½file1µÄ±ê×¼´íÎóÎļþµÄ»º³å¡£ÓÉÓÚSTDOUTºÍSTDERRµÄ»º³å¾ù±»¹Øµô£¬ÏòÆäµÄÊä³öÁ¢¿Ì±»Ð´µ½ÎļþÖУ¬Òò´Ëline 1³öÏÖÔÚµÚÒ»ÐС£ 4)Ö¸¶¨¶ÁдȨÏÞ £ ´ò¿ªÒ»¸ö¼È¿É¶ÁÓÖ¿ÉдµÄÎļþ·½·¨ÊÇÔÚÎļþÃûǰ¼ÓÉÏ"+>"£¬ÈçÏ£º £ £ open (READWRITE, "+>file1"); £ ´ËÓï¾ä´ò¿ª¼È¿É¶ÁÓÖ¿ÉдµÄÎļþfile1£¬¼´¿ÉÒÔÖØÐ´ÆäÖеÄÄÚÈÝ¡£Îļþ¶Áд²Ù×÷×îºÃÓë¿âº¯ÊýseekºÍtellÒ»ÆðʹÓã¬ÕâÑù¿ÉÒÔÌøµ½ÎļþÈκÎÒ»µã¡£ £ ×¢£ºÒ²¿ÉÓÃǰ׺"+<"Ö¸¶¨¿É¶ÁдȨÏÞ¡£ 5)closeº¯Êý £ ÓÃÓڹرմò¿ªµÄÎļþ¡£µ±ÓÃclose¹Ø±Õ¹ÜµÀ£¬¼´Öض¨ÏòµÄÃüÁîʱ£¬³ÌÐòµÈ´ýÖØ¶¨ÏòµÄÃüÁî½áÊø£¬È磺 £ £ open (MYPIPE, "cat file*|"); £ £ close (MYPIPE); £ µ±¹Ø±Õ´ËÎļþ±äÁ¿Ê±£¬³ÌÐòÔÝÍ£ÔËÐУ¬Ö±µ½ÃüÁîcat file*ÔËÐÐÍê±Ï¡£ 6)print, printfºÍwriteº¯Êý £ printÊÇÕâÈý¸öº¯ÊýÖÐ×î¼òµ¥µÄ£¬ËüÏòÖ¸¶¨µÄÎļþÊä³ö£¬Èç¹ûδָ¶¨£¬ÔòÊä³öµ½µ±Ç°È±Ê¡ÎļþÖУ¬È磺 £ £ print ("Hello, there!\n"); £ £ print OUTFILE ("Hello, there!\n"); £ µÚÒ»¾äÊä³öµ½µ±Ç°È±Ê¡ÎļþÖУ¬Èôδµ÷ÓÃselect£¬ÔòΪSTDOUT¡£µÚ¶þ¾äÊä³öµ½ÓÉÎļþ±äÁ¿OUTFILEÖ¸¶¨µÄÎļþÖС£ £ printfº¯ÊýÏȸñʽ»¯×Ö·û´®ÔÙÊä³öµ½Ö¸¶¨Îļþ»òµ±Ç°È±Ê¡ÎļþÖУ¬È磺 £ £ printf OUTFILE (¡°You owe me %8.2f", $owing); £ ´ËÓï¾äÈ¡³ö±äÁ¿$owingµÄÖµ²¢Ìæ»»µô´®ÖеÄ%8.2f£¬%8.2fÊÇÓò¸ñʽµÄÀý×Ó£¬°Ñ$owingµÄÖµ¿´×÷¸¡µãÊý¡£ £ writeº¯ÊýʹÓÃÊä³ö¸ñʽ°ÑÐÅÏ¢Êä³öµ½ÎļþÖУ¬È磺 £ £ select (OUTFILE); £ £ $~ = "MYFORMAT"; £ £ write; £ ¹ØÓÚprintfºÍwrite£¬Ïê¼û¡¶µÚxÕ ¸ñʽ»¯Êä³ö¡·¡£ 7)selectº¯Êý £ selectº¯Êý½«Í¨¹ý²ÎÊý´«µÝµÄÎļþ±äÁ¿Ö¸¶¨ÎªÐµĵ±Ç°È±Ê¡Îļþ£¬È磺 £ £ select (MYFILE); £ ÕâÑù£¬MYFILE¾Í³ÉÁ˵±Ç°È±Ê¡Îļþ£¬µ±¶Ôprint¡¢writeºÍprintfµÄµ÷ÓÃδָ¶¨Îļþʱ£¬¾ÍÊä³öµ½MYFILEÖС£ 8)eofº¯Êý £ eofº¯Êý²é¿´×îºóÒ»´Î¶ÁÎļþ²Ù×÷ÊÇ·ñΪÎļþ×îºóÒ»¸ö¼Ç¼£¬Èç¹ûÊÇ£¬Ôò·µ»Ø·ÇÁãÖµ£¬Èç¹ûÎļþ»¹ÓÐÄÚÈÝ£¬·µ»ØÁã¡£ £ Ò»°ãÇé¿öÏ£¬¶ÔeofµÄµ÷Óò»¼ÓÀ¨ºÅ£¬ÒòΪeofºÍeof()ÊǵÈЧµÄ£¬µ«Óë<>²Ù×÷·ûÒ»ÆðʹÓÃʱ£¬eofºÍeof()¾Í²»Í¬ÁË¡£ÏÖÔÚÎÒÃÇÀ´´´½¨Á½¸öÎļþ£¬·Ö±ð½Ð×öfile1ºÍfile2¡£file1µÄÄÚÈÝΪ£º £ £ This is a line from the first file. £ £ Here is the last line of the first file. £ file2µÄÄÚÈÝΪ£º £ £ This is a line from the second and last file. £ £ Here is the last line of the last file. £ ÏÂÃæ¾ÍÀ´¿´Ò»ÏÂeofºÍeof()µÄÇø±ð£¬µÚÒ»¸ö³ÌÐòΪ£º 1: #!/usr/local/bin/perl 2: 3: while ($line = <>) { 4:£ print ($line); 5:£ if (eof) { 6:£ £ print ("-- end of current file --\n"); 7:£ } 8: } £ ÔËÐнá¹ûÈçÏ£º $ program file1 file2 This is a line from the first file. Here is the last line of the first file. -- end of current file -- This is a line from the second and last file. Here is the last line of the last file. -- end of current file -- $ £ ÏÂÃæ°Ñeof¸ÄΪeof()£¬µÚ¶þ¸ö³ÌÐòΪ£º 1: #!/usr/local/bin/perl 2: 3: while ($line = <>) { 4:£ print ($line); 5:£ if (eof()) { 6:£ £ print ("-- end of output --\n"); 7:£ } 8: } £ ÔËÐнá¹ûÈçÏ£º $ program file1 file2 This is a line from the first file. Here is the last line of the first file. This is a line from the second and last file. Here is the last line of the last file. -- end of output --$ £ Õâʱ£¬Ö»ÓÐËùÓÐÎļþ¶¼¶Á¹ýÁË£¬eof()²Å·µ»ØÕ棬Èç¹ûÖ»ÊǶà¸öÎļþÖÐǰ¼¸¸öµÄĩ⣬·µ»ØÖµÎª¼Ù£¬ÒòΪ»¹ÓÐÒª¶ÁÈ¡µÄÊäÈë¡£ 9)¼ä½ÓÎļþ±äÁ¿ £ ¶ÔÓÚÉÏÊö¸÷º¯Êýopen, close, print, printf, write, selectºÍeof£¬¶¼¿ÉÒÔÓüòµ¥±äÁ¿À´´úÌæÎļþ±äÁ¿£¬Õâʱ£¬¼òµ¥±äÁ¿ÖÐËù´æÖüµÄ×Ö·û´®¾Í±»¿´×÷Îļþ±äÁ¿Ãû£¬ÏÂÃæ¾ÍÊÇÕâÑùÒ»¸öÀý×Ó£¬´ËÀýºÜ¼òµ¥£¬¾Í²»½âÊÍÁË¡£ÐèÒªÖ¸³öµÄÊÇ£¬º¯Êýopen, close, write, selectºÍeof»¹ÔÊÐíÓñí´ïʽÀ´Ìæ´úÎļþ±äÁ¿£¬±í´ïʽµÄÖµ±ØÐëÊÇ×Ö·û´®£¬±»ÓÃ×÷Îļþ±äÁ¿Ãû¡£ 1: #!/usr/local/bin/perl 2: 3: &open_file("INFILE", "", "file1"); 4: &open_file("OUTFILE", ">", "file2"); 5: while ($line = &read_from_file("INFILE")) { 6:£ &print_to_file("OUTFILE", $line); 7: } 8: 9: sub open_file { 10:£ local ($filevar, $filemode, $filename) = @_; 11: 12:£ open ($filevar, $filemode . $filename) || 13:£ £ die ("Can't open $filename"); 14: } 15: sub read_from_file { 16:£ local ($filevar) = @_; 17: 18:£ <$filevar>; 19: } 20: sub print_to_file { 21:£ local ($filevar, $line) = @_; 22: 23:£ print $filevar ($line); 24: } 2¡¢Ìø¹ýºÍÖØ¶ÁÊý¾Ý º¯ÊýÃûseek µ÷ÓÃÓï·¨seek (filevar, distance, relative_to); ½â˵ÔÚÎļþÖÐÏòǰ/ºóÒÆ¶¯£¬ÓÐÈý¸ö²ÎÊý£º 1¡¢filevar£¬Îļþ±äÁ¿ 2¡¢distance£¬Òƶ¯µÄ×Ö½ÚÊý£¬ÕýÊýÏòÇ°ÒÆ¶¯£¬¸ºÊýÍù»ØÒƶ¯ 3¡¢reletive_to£¬Öµ¿ÉΪ0¡¢1»ò2¡£Îª0ʱ£¬´ÓÎļþÍ·¿ªÊ¼Òƶ¯£¬Îª1ʱ£¬Ïà¶ÔÓÚµ±Ç°Î»Ö㨽«Òª¶ÁµÄÏÂÒ»ÐУ©Òƶ¯£¬Îª2ʱ£¬Ïà¶ÔÓÚÎļþÄ©Î²ÒÆ¶¯¡£ ÔËÐгɹ¦·µ»ØÕ棨·ÇÁãÖµ£©£¬Ê§°ÜÔò·µ»ØÁ㣬³£Óëtellº¯ÊýºÏÓᣠº¯ÊýÃûtell µ÷ÓÃÓï·¨tell (filevar); ½â˵·µ»Ø´ÓÎļþÍ·µ½µ±Ç°Î»ÖõľàÀë¡£ ×¢Ò⣺ 1¡¢seekºÍtell²»ÄÜÓÃÓÚÖ¸Ïò¹ÜµÀµÄÎļþ±äÁ¿¡£ 2¡¢seekºÍtellÖÐÎļþ±äÁ¿²ÎÊý¿ÉʹÓñí´ïʽ¡£ 3¡¢ÏµÍ³¶Áдº¯Êý º¯ÊýÃûread µ÷ÓÃÓï·¨read (filevar, result, length, skipval); ½â˵readº¯ÊýÉè¼ÆµÃÓëUNIXµÄfreadº¯ÊýµÈЧ£¬¿ÉÒÔ¶ÁÈ¡ÈÎÒⳤ¶ÈµÄ×Ö·û£¨×Ö½Ú£©´æÈëÒ»¸ö¼òµ¥±äÁ¿¡£Æä²ÎÊýÓÐËĸö£º 1¡¢filevar£ºÎļþ±äÁ¿ 2¡¢result£º´æÖü½á¹ûµÄ¼òµ¥±äÁ¿£¨»òÊý×éÔªËØ£© 3¡¢length£º¶ÁÈ¡µÄ×Ö½ÚÊý 4¡¢skipval£º¿ÉÑ¡Ïָ¶¨¶ÁÎļþÖ®Ç°Ìø¹ýµÄ×Ö½ÚÊý¡£ ·µ»ØÖµÎªÊµ¼Ê¶ÁÈ¡µÄ×Ö½ÚÊý£¬Èç¹ûÒѵ½ÁËÎļþĩ⣬Ôò·µ»ØÁ㣬Èç¹û³ö´í£¬Ôò·µ»Ø¿Õ´®¡£ º¯ÊýÃûsysread µ÷ÓÃÓï·¨sysread (filevar, result, length, skipval); ½â˵¸ü¿ìµÄ¶ÁÈ¡Êý¾Ý£¬ÓëUNIXº¯ÊýreadµÈЧ£¬²ÎÊýÓëreadÏàͬ¡£ º¯ÊýÃûsyswrite µ÷ÓÃÓï·¨syswrite (filevar, data, length, skipval); ½â˵¸ü¿ìµÄдÈëÊý¾Ý£¬ÓëUNIXº¯ÊýwriteµÈЧ£¬²ÎÊý£º 1¡¢filevar£º½«ÒªÐ´ÈëµÄÎļþ 2¡¢data£º´æÖüҪдÈëÊý¾ÝµÄ±äÁ¿ 3¡¢length£ºÒªÐ´ÈëµÄ×Ö½ÚÊý 4¡¢skipvalд²Ù×÷Ö®Ç°Ìø¹ýµÄ×Ö½ÚÊý¡£ 4¡¢ÓÃgetc¶ÁÈ¡×Ö·û º¯ÊýÃûgetc µ÷ÓÃÓï·¨$char = getc (infile); ½â˵´ÓÎļþÖжÁÈ¡µ¥¸ö×Ö·û¡£ 5¡¢ÓÃbinmode¶ÁÈ¡¶þ½øÖÆÎļþ º¯ÊýÃûbinmode µ÷ÓÃÓï·¨binmode (filevar); ½â˵µ±ÄãµÄϵͳ£¨ÈçÀàDOSϵͳ£©¶ÔÎı¾ÎļþºÍ¶þ½øÖÆÎļþÓÐËùÇø±ðʱʹÓᣱØÐëÔÚ´ò¿ªÎļþºó¡¢¶ÁÈ¡ÎļþǰʹÓᣠ¶þ¡¢Ä¿Â¼´¦Àíº¯Êý º¯ÊýÃûmkdir µ÷ÓÃÓï·¨mkdir (dirname, permissions); ½â˵´´½¨ÐÂĿ¼£¬²ÎÊýΪ£º 1¡¢dirname£º½«Òª´´½¨µÄĿ¼Ãû£¬¿ÉÒÔΪ×Ö·û´®»ò±í´ïʽ 2¡¢permissions£º8½øÖÆÊý£¬Ö¸¶¨Ä¿Â¼µÄ·ÃÎÊȨÏÞ£¬ÆäÖµºÍÒâÒå¼ûÏÂ±í£¬È¨ÏÞµÄ×éºÏ·½·¨Îª½«ÏàÓ¦µÄÖµÏà¼Ó¡£ ֵȨÏÞ 4000£ ÔËÐÐʱÉèÖÃÓû§ID£ 2000ÔËÐÐʱÉèÖÃ×éID 1000Õ³Ìùλ 0400ÓµÓÐÕß¶ÁȨÏÞ 0200ÓµÓÐÕßдȨÏÞ 0100ÓµÓÐÕßÖ´ÐÐȨÏÞ 0040×é¶ÁȨÏÞ 0020×éдȨÏÞ 0010×éÖ´ÐÐȨÏÞ 0004ËùÓÐÈ˶ÁȨÏÞ 0002ËùÓÐÈËдȨÏÞ 0001ËùÓÐÈËÖ´ÐÐȨÏÞ º¯ÊýÃûchdir µ÷ÓÃÓï·¨chdir (dirname); ½â˵¸Ä±äµ±Ç°¹¤×÷Ŀ¼¡£²ÎÊýdirname¿ÉÒÔΪ×Ö·û´®£¬Ò²¿ÉÒÔΪ±í´ïʽ¡£ º¯ÊýÃûopendir µ÷ÓÃÓï·¨opendir (dirvar, dirname); ½â˵´ò¿ªÄ¿Â¼£¬ÓëÏÂÃæ¼¸¸öº¯ÊýºÏÓ㬿ɲ鿴ijĿ¼ÖÐÎļþÁÐ±í¡£²ÎÊýΪ£º 1¡¢dirvar£ºÄ¿Â¼±äÁ¿£¬ÓëÎļþ±äÁ¿ÀàËÆ 2¡¢dirname£ºÄ¿Â¼Ãû£¬¿ÉΪ×Ö·û´®»ò±í´ïʽ ³É¹¦·µ»ØÕæÖµ£¬Ê§°Ü·µ»Ø¼Ù¡£ ×¢£º³ÌÐòÖпÉÓÃͬÃûµÄĿ¼±äÁ¿ºÍÎļþ±äÁ¿£¬¸ù¾Ý»·¾³È·¶¨È¡³É·Ö¡£ º¯ÊýÃûclosedir µ÷ÓÃÓï·¨closedir (mydir); ½â˵¹Ø±Õ´ò¿ªµÄĿ¼¡£ º¯ÊýÃûreaddir µ÷ÓÃÓï·¨readdir (mydir); ½â˵¸³¸ø¼òµ¥±äÁ¿Ê±£¬Ã¿´Î¸³ÓèÒ»¸öÎļþ»ò×ÓĿ¼Ãû£¬¶ÔÊý×éÔò¸³ÓèÈ«²¿ÎļþºÍ×ÓĿ¼Ãû¡£ º¯ÊýÃûtelldir µ÷ÓÃÓï·¨location = telldir (mydir); ½â˵ÏóÔÚÎļþÖÐǰºóÒÆ¶¯Ò»Ñù£¬telldirºÍÏÂÃæµÄseekdirÓÃÓÚÔÚĿ¼ÁбíÖÐǰºóÒÆ¶¯¡£ º¯ÊýÃûseekdir µ÷ÓÃÓï·¨seekdir(mydir, location); ½â˵location±ØÐëΪtelldir·µ»ØµÄÖµ¡£ º¯ÊýÃûrewinddir µ÷ÓÃÓï·¨rewinddir (mydir); ½â˵½«¶ÁȡĿ¼µÄλÖÃÖØÖûؿªÍ·£¬´Ó¶ø¿ÉÒÔÖØ¶ÁĿ¼ÁÐ±í¡£ º¯ÊýÃûrmdir µ÷ÓÃÓï·¨rmdir (dirname); ½â˵ɾ³ý¿ÕĿ¼¡£³É¹¦Ôò·µ»ØÕ棨·ÇÁãÖµ£©£¬Ê§°Ü·µ»Ø¼Ù£¨ÁãÖµ£©¡£ Èý¡¢ÎļþÊôÐÔº¯Êý 1¡¢ÎļþÖØ¶¨Î»º¯Êý º¯ÊýÃûrename µ÷ÓÃÓï·¨rename (oldname, newname); ½â˵¸Ä±äÎļþÃû»òÒÆ¶¯µ½ÁíÒ»¸öĿ¼ÖУ¬²ÎÊý¿ÉΪ×Ö·û´®»ò±í´ïʽ¡£ º¯ÊýÃûunlink µ÷ÓÃÓï·¨num = unlink (filelist); ½â˵ɾ³ýÎļþ¡£²ÎÊýΪÎļþÃûÁÐ±í£¬·µ»ØÖµÎªÊµ¼Êɾ³ýµÄÎļþÊýÄ¿¡£ ´Ëº¯ÊýÖ®ËùÒÔ½Ðunlink¶ø²»½ÐdeleteÊÇÒòΪËüʵ¼ÊËù×öµÄÊÇɾ³ýÎļþµÄÁ´½Ó¡£ 2¡¢Á´½ÓºÍ·ûºÅÁ´½Óº¯Êý º¯ÊýÃûlink µ÷ÓÃÓï·¨link (newlink, file); ½â˵´´½¨ÏÖÓÐÎļþµÄÁ´½Ó--Ó²Á´½Ó£¬fileÊDZ»Á´½ÓµÄÎļþ£¬newlinkÊDZ»´´½¨µÄÁ´½Ó¡£ ³É¹¦·µ»ØÕ棬ʧ°Ü·µ»Ø¼Ù¡£ µ±É¾³ýÕâÁ½¸öÁ´½ÓÖеÄÒ»¸öʱ£¬»¹¿ÉÒÔÓÃÁíÒ»¸öÀ´·ÃÎʸÃÎļþ¡£ º¯ÊýÃûsymlink µ÷ÓÃÓï·¨symlink (newlink, file); ½â˵´´½¨ÏÖÓÐÎļþµÄ·ûºÅÁ´½Ó£¬¼´Ö¸ÏòÎļþÃû£¬¶ø²»ÊÇÖ¸ÏòÎļþ±¾Éí¡£²ÎÊýºÍ·µ»ØÖµÍ¬ÉÏ¡£ µ±ÔÎļþ±»É¾³ý£¨È磺±»unlinkeº¯Êýɾ³ý£©£¬Ôò±»´´½¨Á´½Ó²»¿ÉÓ㬳ý·ÇÔÙ´´½¨Ò»¸öÓëÔ±»Á´½ÓµÄÎļþͬÃûµÄÎļþ¡£ º¯ÊýÃûreadlink µ÷ÓÃÓï·¨filename = readlink (linkname); ½â˵Èç¹ûlinknameΪ·ûºÅÁ´½ÓÎļþ£¬·µ»ØÆäʵ¼ÊÖ¸ÏòµÄÎļþ¡£·ñÔò·µ»Ø¿Õ´®¡£ 3¡¢ÎļþÐí¿ÉȨº¯Êý º¯ÊýÃûchmod µ÷ÓÃÓï·¨chmod (permissions, filelist); ½â˵¸Ä±äÎļþµÄ·ÃÎÊȨÏÞ¡£²ÎÊýΪ£º 1¡¢permissionsΪ½«ÒªÉèÖõÄȨÏÞ£¬Æäº¬Òå¼ûÉÏÊömkdirÖÐȨÏÞ±í 2¡¢filelistΪÓû¸Ä±äȨÏÞµÄÎļþÁÐ±í º¯ÊýÃûchown µ÷ÓÃÓï·¨chown (userid, groupid, filelist); ½â˵¸Ä±äÎļþµÄÊôÖ÷£¬ÓÐÈý¸ö²ÎÊý£º 1¡¢userid£ºÐÂÊôÖ÷µÄ(Êý×Ö)IDºÅ 2¡¢groupid£ºÐµÄ×é(Êý×Ö)IDºÅ£¬-1Ϊ±£ÁôÔ×é 3¡¢filelist£ºÓû¸Ä±äÊôÖ÷µÄÎļþÁÐ±í º¯ÊýÃûumask µ÷ÓÃÓï·¨oldmaskval = umask (maskval); ½â˵ÉèÖÃÎļþ·ÃÎÊȨÏÞÑÚÂ룬·µ»ØÖµÎªµ±Ç°ÑÚÂë¡£ 4¡¢ÆäËüÊôÐÔº¯Êý º¯ÊýÃûtruncate µ÷ÓÃÓï·¨truncate (filename, length); ½â˵½«ÎļþµÄ³¤¶È¼õÉÙµ½length×Ö½Ú¡£Èç¹ûÎļþ³¤¶ÈÒѾСÓÚlength£¬Ôò²»×öÈκÎÊ¡£ÆäÖÐfilename¿ÉÒÔΪÎļþÃû£¬Ò²¿ÉÒÔΪÎļþ±äÁ¿ º¯ÊýÃûstat µ÷ÓÃÓï·¨stat (file); ½â˵»ñÈ¡Îļþ״̬¡£²ÎÊýfile¿ÉΪÎļþÃûÒ²¿ÉΪÎļþ±äÁ¿¡£·µ»ØÁбíÔªËØÒÀ´ÎΪ£º ÎļþËùÔÚÉ豸 ÄÚ²¿²Î¿¼ºÅ(inode) ·ÃÎÊȨÏÞ Ó²Á´½ÓÊý ÊôÖ÷µÄ(Êý×Ö)ID ËùÊô×éµÄ(Êý×Ö)ID É豸ÀàÐÍ£¨Èç¹ûfileÊÇÉ豸µÄ»°£© Îļþ´óС£¨×Ö½ÚÊý£© ×îºó·ÃÎÊʱ¼ä ×îºóÐÞ¸Äʱ¼ä×îºó¸Ä±ä״̬ʱ¼ä I/O²Ù×÷×î¼Ñ¿é´óС ·ÖÅ䏸¸ÃÎļþµÄ¿éÊý º¯ÊýÃûlstat µ÷ÓÃÓï·¨lstat (file); ½â˵ÓëstatÀàËÆ£¬Çø±ðÊǽ«file¿´×÷ÊÇ·ûºÅÁ´½Ó¡£ º¯ÊýÃûtime µ÷ÓÃÓï·¨currtime = time(); ½â˵·µ»Ø´Ó1970Äê1ÔÂ1ÈÕÆðÀÛ¼ÆÃëÊý¡£ º¯ÊýÃûgmtime µ÷ÓÃÓï·¨timelist = gmtime (timeval); ½â˵½«ÓÉtime, stat »ò -A ºÍ -M Îļþ²âÊÔ²Ù×÷·û·µ»ØµÄʱ¼äת»»³É¸ñÁÖÍþÖÎʱ¼ä¡£·µ»ØÁбíÔªËØÒÀ´ÎΪ£º Ãë ·ÖÖÓ Ð¡Ê±£¬0~23 ÈÕÆÚ Ô·ݣ¬0~11(Ò»ÔÂ~Ê®¶þÔÂ) Äê·Ý ÐÇÆÚ£¬0~6(ÖÜÈÕ~ÖÜÁù) Ò»ÄêÖеÄÈÕÆÚ£¬0~364 ÊÇ·ñÏÄÁîʱµÄ±êÖ¾ Ïê¼ûUNIXµÄgmtime°ïÖú¡£ º¯ÊýÃûlocaltime µ÷ÓÃÓï·¨timelist = localtime (timeval); ½â˵ÓëgmtimeÀàËÆ£¬Çø±ðΪ½«Ê±¼äֵת»»Îª±¾µØÊ±¼ä¡£ º¯ÊýÃûutime µ÷ÓÃÓï·¨utime (acctime, modtime, filelist); ½â˵¸Ä±äÎļþµÄ×îºó·ÃÎÊʱ¼äºÍ×îºó¸ü¸Äʱ¼ä¡£ÀýÈ磺 $acctime = -A "file1"; $modtime = -M "file1"; @filelist = ("file2", "file3"); utime ($acctime, $modtime, @filelist); º¯ÊýÃûfileno µ÷ÓÃÓï·¨filedesc = fileno (filevar); ½â˵·µ»ØÎļþµÄÄÚ²¿UNIXÎļþÃèÊö¡£²ÎÊýfilevarΪÎļþ±äÁ¿¡£ º¯ÊýÃûfcntl flock µ÷ÓÃÓï·¨fcntl (filevar, fcntlrtn, value); flock (filevar, flockop); ½â˵Ïê¼ûͬÃûUNIXº¯Êý°ïÖú¡£ ËÄ¡¢Ê¹ÓÃDBMÎļþ £ PerlÖпÉÓùØÁªÊý×éÀ´·ÃÎÊDBMÎļþ£¬ËùÓú¯ÊýΪdbmopenºÍdbmclose£¬ÔÚPerl5ÖУ¬ÒÑÓÃtieºÍuntie´úÌæ¡£ º¯ÊýÃûdbmopen µ÷ÓÃÓï·¨dbmopen (array, dbmfilename, permissions); ½â˵½«¹ØÁªÊý×éÓëDBMÎļþÏà¹ØÁª¡£²ÎÊýΪ£º 1¡¢array£ºËùÓùØÁªÊý×é 2¡¢dbmfilename£º½«´ò¿ªµÄDBMÎļþÃû 3¡¢·ÃÎÊȨÏÞ£¬Ïê¼ûmkdir º¯ÊýÃûdbmclose µ÷ÓÃÓï·¨dbmclose (array); ½â˵¹Ø±ÕDBMÎļþ£¬²ð³ý¹ØÁªÊý×éÓëÖ®µÄ¹ØÏµ¡£ µÚÊ®¶þÕ Perl5ÖеÄÒýÓÃ/Ö¸Õë Ò»¡¢ÒýÓüò½é £ ÒýÓþÍÊÇÖ¸Õ룬¿ÉÒÔÖ¸Ïò±äÁ¿¡¢Êý×é¡¢¹þÏ£±í£¨Ò²½Ð¹ØÁªÊý×飩ÉõÖÁ×Ó³ÌÐò¡£Pascal»òC³ÌÐòÔ±Ó¦¸Ã¶ÔÒýÓ㨼´Ö¸Õ룩µÄ¸ÅÄîºÜÊìϤ£¬ÒýÓþÍÊÇijֵµÄµØÖ·£¬¶ÔÆäµÄʹÓÃÔòÈ¡¾öÓÚ³ÌÐòÔ±ºÍÓïÑԵĹ涨¡£ÔÚPerlÖУ¬¿ÉÒÔ°ÑÒýÓóÆÎªÖ¸Õ룬¶þÕßÊÇͨÓõģ¬ÎÞ²î±ðµÄ¡£ÒýÓÃÔÚ´´½¨¸´ÔÓÊý¾Ý·½ÃæÊ®·ÖÓÐÓᣠ£ Perl5ÖеÄÁ½ÖÖÒýÓÃÀàÐÍΪӲÒýÓúͷûºÅÒýÓ᣷ûºÅÒýÓú¬ÓбäÁ¿µÄÃû×Ö£¬Ëü¶ÔÔËÐÐʱ´´½¨±äÁ¿Ãû²¢¶¨Î»ºÜÓÐÓ㬻ù±¾ÉÏ£¬·ûºÅÒýÓþÍÏóÎļþÃû»òUNIXϵͳÖеÄÈíÁ´½Ó¡£¶øÓ²ÒýÓÃÔòÏóÎļþϵͳÖеÄÓ²Á´½Ó¡£ £ Perl4Ö»ÔÊÐí·ûºÅÒýÓ㬸øÊ¹ÓÃÔì³ÉһЩÀ§ÄÑ¡£ÀýÈ磬ֻÔÊÐíͨ¹ýÃû×Ö¶Ô°üµÄ·ûºÅÃû¹þÏ£±í£¨ÃûΪ_main{}£©½¨Á¢Ë÷Òý¡£Perl5ÔòÔÊÐíÊý¾ÝµÄÓ²ÒýÓ㬷½±ã¶àÁË¡£ £ Ó²ÒýÓøú×ÙÒýÓõļÆÊý£¬µ±ÆäÊýΪÁãʱ£¬Perl×Ô¶¯½«±»ÒýÓõÄÏîÄ¿ÊÍ·Å£¬Èç¹û¸ÃÏîÄ¿ÊǶÔÏó£¬ÔòÎö¹¹Êͷŵ½ÄÚ´æ³ØÖС£Perl±¾Éí¾ÍÊǸöÃæÏò¶ÔÏóµÄÓïÑÔ£¬ÒòΪPerlÖеÄÈκζ«Î÷¶¼ÊǶÔÏ󣬰üºÍÄ£¿éʹµÃ¶ÔÏó¸üÒ×ÓÚʹÓᣠ£ ¼òµ¥±äÁ¿µÄÓ²ÒýÓúܼòµ¥£¬¶ÔÓڷǼòµ¥±äÁ¿µÄÒýÓã¬Äã±ØÐëÏÔʽµØ½â³ýÒýÓò¢¸æË߯äÓ¦ÈçºÎ×ö£¬Ïê¼û¡¶µÚ ÕÂPerlÖеÄÃæÏò¶ÔÏó±à³Ì¡·¡£ ¶þ¡¢Ê¹ÓÃÒýÓà £ ±¾ÕÂÖУ¬¼òµ¥±äÁ¿Ö¸Ïñ$pointerÕâÑùµÄ±äÁ¿£¬$pointer½öº¬Ò»¸öÊý¾ÝÏÆä¿ÉÒÔΪÊý×Ö¡¢×Ö·û´®»òµØÖ·¡£ £ Èκμòµ¥±äÁ¿¾ù¿É±£´æÓ²ÒýÓá£ÒòΪÊý×éºÍ¹þÏ£±íº¬Óжà¸ö¼òµ¥±äÁ¿£¬ËùÒÔ¿ÉÒÔ½¨Á¢¶àÖÖ×éºÏ¶ø³ÉµÄ¸´ÔÓµÄÊý¾Ý½á¹¹£¬ÈçÊý×éµÄÊý×é¡¢¹þÏ£±íµÄÊý×é¡¢×Ó³ÌÐòµÄ¹þÏ£±íµÈµÈ¡£Ö»ÒªÄãÀí½âÆäʵֻÊÇÔÚÓüòµ¥±äÁ¿ÔÚ¹¤×÷£¬¾ÍÓ¦¸Ã¿ÉÒÔÕýÈ·µÄÔÚ×ÔӵĽṹÖÐÕýÈ·µØ½â³ýÒýÓᣠ£ Ê×ÏÈÀ´¿´Ò»Ð©»ù±¾Òªµã¡£ £ Èç¹û$pointerµÄֵΪһ¸öÊý×éµÄÖ¸Õ룬Ôòͨ¹ýÐÎʽ@$pointerÀ´·ÃÎÊÊý×éÖеÄÔªËØ¡£ÐÎʽ@$pointerµÄÒâÒåΪ¡°È¡³ö$pointerÖеĵØÖ·Öµµ±×÷Êý×éʹÓᱡ£ÀàËÆµÄ£¬%$pointerΪָÏò¹þÏ£±íÖеÚÒ»¸öÔªËØµÄÒýÓᣠ£ ÓжàÖÖ¹¹½¨ÒýÓõķ½·¨£¬¼¸ºõ¿ÉÒÔ¶ÔÈκÎÊý¾Ý½¨Á¢ÒýÓã¬ÈçÊý×é¡¢¼òµ¥±äÁ¿¡¢×Ó³ÌÐò¡¢Îļþ¾ä±ú£¬ÒÔ¼°--C³ÌÐòÔ±»á¸ÐÐËȤµÄ--ÒýÓá£PerlʹÄãÓÐÄÜÁ¦Ð´³ö°Ñ×Ô¼º¶¼¸ãºýÍ¿µÄ¼«Æä¸´ÔӵĴúÂë¡£:) £ ÏÂÃæ¿´¿´PerlÖд´½¨ºÍʹÓÃÒýÓõķ½·¨¡£ Èý¡¢Ê¹Ó÷´Ð±Ïß(\)²Ù×÷·û £ ·´Ð±Ïß²Ù×÷·ûÓëCÓïÑÔÖд«µÝµØÖ·µÄ²Ù×÷·û&¹¦ÄÜÀàËÆ¡£Ò»°ãÊÇÓÃ\´´½¨±äÁ¿ÓÖÒ»¸öеÄÒýÓá£ÏÂÃæÎª´´½¨¼òµ¥±äÁ¿µÄÒýÓõÄÀý×Ó£º £ $variavle = 22; £ $pointer = \$variable; £ $ice = "jello"; £ $iceprt = \$ice; £ ÒýÓÃ$pointerÖ¸Ïò´æÓÐ$variableÖµµÄλÖã¬ÒýÓÃ$iceptrÖ¸Ïò"jello"¡£¼´Ê¹×î³õµÄÒýÓÃ$variableÏú»ÙÁË£¬ÈÔÈ»¿ÉÒÔͨ¹ý$pointer·ÃÎʸÃÖµ£¬ÕâÊÇÒ»¸öÓ²ÒýÓã¬ËùÒÔ±ØÐëͬʱÏú»Ù$pointerºÍ$variableÒÔ±ã¸Ã¿Õ¼äÊͷŵ½ÄÚ´æ³ØÖС£ £ ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÒýÓñäÁ¿$pointer´æµÄÊÇ$variableµÄµØÖ·£¬¶ø²»ÊÇÖµ±¾Éí£¬Òª»ñµÃÖµ£¬ÐÎʽΪÁ½¸ö$·ûºÅ£¬ÈçÏ£º #!/usr/bin/perl $value = 10; $pointer = \$value; printf "\n Pointer Address $pointer of $value \n"; printf "\n What Pointer *($pointer) points to $pointer\n"; £ ½á¹ûÊä³öÈçÏ£º Pointer Address SCALAR(0x806c520) of 10 What Pointer *(SCALAR(0x806c520)) points to 10 £ ÿ´ÎÔËÐУ¬Êä³ö½á¹ûÖеĵØÖ·»áÓÐËù¸Ä±ä£¬µ«¿ÉÒÔ¿´µ½$pointer¸ø³öµØÖ·£¬¶ø$pointer¸ø³ö$variableµÄÖµ¡£ £ ¿´Ò»ÏµØÖ·µÄÏÔʾ£¬SCALARºóÃæÒ»´®Ê®Áù½øÖÆ£¬SCALAR˵Ã÷¸ÃµØÖ·Ö¸Ïò¼òµ¥±äÁ¿£¨¼´±êÁ¿£©£¬ºóÃæµÄÊý×ÖÊÇʵ¼Ê´æÖüÖµµÄµØÖ·¡£ £ ×¢Ò⣺ָÕë¾ÍÊǵØÖ·£¬Í¨¹ýÖ¸Õë¿ÉÒÔ·ÃÎʸõØÖ·´¦´æÖüµÄÊý¾Ý¡£Èç¹ûÖ¸ÕëÖ¸ÏòÁËÎÞЧµÄµØÖ·£¬¾Í»áµÃµ½²»ÕýÈ·µÄÊý¾Ý¡£Í¨³£Çé¿öÏ£¬Perl»á·µ»ØNULLÖµ£¬µ«²»¸ÃÒÀÀµÓÚ´Ë£¬Ò»¶¨ÒªÔÚ³ÌÐòÖаÑËùÓеÄÖ¸ÕëÕýÈ·µØ³õʼ»¯£¬Ö¸ÏòÓÐЧµÄÊý¾ÝÏî¡£ ËÄ¡¢ÒýÓúÍÊý×é £ ¹ØÓÚPerlÓïÑÔÓ¦¸Ã¼ÇסµÄ×îÖØÒªµÄÒ»µã¿ÉÄÜÊÇ£ºPerlÖеÄÊý×éºÍ¹þÏ£±íʼÖÕÊÇһάµÄ¡£Òò´Ë£¬Êý×éºÍ¹þÏ£±íÖ»±£´æ±êÁ¿Öµ£¬²»Ö±½Ó´æÖüÊý×é»òÆäËüµÄ¸´ÔÓÊý¾Ý½á¹¹¡£Êý×éµÄ³ÉԱҪôÊÇÊý£¨»ò×Ö·û´®£©ÒªÃ´ÊÇÒýÓᣠ£ ¶ÔÊý×éºÍ¹þÏ£±í¿ÉÒÔÏó¶Ô¼òµ¥±äÁ¿Ò»ÑùʹÓ÷´Ð±Ïß²Ù×÷·û£¬Êý×éµÄÒýÓÃÈçÏ£º 1£ #!/usr/bin/perl 2£ # 3£ # Using Array references 4£ # 5£ $pointer = \@ARGV; 6£ printf "\n Pointer Address of ARGV = $pointer\n"; 7£ $i = scalar(@$pointer); 8£ printf "\n Number of arguments : $i \n"; 9£ $i = 0; 10 foreach (@$pointer) { 11£ printf "$i : $pointer[$i++]; \n"; 12 } £ ÔËÐнá¹ûÈçÏ£º $ test 1 2 3 4 Pointer Address of ARGV = ARRAY(0x806c378) Number of arguments : 4 0 : 1; 1 : 2; 2 : 3; 3 : 4; £ µÚ5Ðн«ÒýÓÃ$pointerÖ¸ÏòÊý×é@ARGV£¬µÚ6ÐÐÊä³öARGVµÄµØÖ·¡£$pointer·µ»ØÊý×éµÚÒ»¸öÔªËØµÄµØÖ·£¬ÕâÓëCÓïÑÔÖеÄÊý×éÖ¸ÕëÊÇÀàËÆµÄ¡£µÚ7Ðе÷Óú¯Êýscalar()»ñµÃÊý×éµÄÔªËØ¸öÊý£¬¸Ã²ÎÊýÒà¿ÉΪ@ARGV£¬µ«ÓÃÖ¸ÕëÔò±ØÐëÓÃ@$pointerµÄÐÎʽָ¶¨ÆäÀàÐÍΪÊý×飬$pointer¸ø³öµØÖ·£¬@·ûºÅ˵Ã÷´«µÝµÄµØÖ·ÎªÊý×éµÄµÚÒ»¸öÔªËØµÄµØÖ·¡£µÚ10ÐÐÓëµÚ7ÐÐÀàËÆ£¬µÚ11ÐÐÓÃÐÎʽ$pointer[$i]ÁгöËùÓÐÔªËØ¡£ £ ¶Ô¹ØÁªÊý×éʹÓ÷´Ð±Ïß²Ù×÷·ûµÄ·½·¨ÊÇÒ»ÑùµÄ--°ÑËùÓйØÁªÊý×éÃû»»³ÉÒýÓÃ$poniter¡£×¢ÒâÊý×éºÍ¼òµ¥±äÁ¿£¨±êÁ¿£©µÄÒýÓÃÏÔʾʱ¾ù´øÓÐÀàÐÍ--ARRAYºÍSCALAR£¬¹þÏ£±í£¨¹ØÁªÊý×飩ºÍº¯ÊýÒ²Ò»Ñù£¬·Ö±ðΪHASHºÍCODE¡£ÏÂÃæÊǹþÏ£±íµÄÒýÓõÄÀý×Ó¡£ #!/usr/bin/perl 1£ # 2£ # Using Associative Array references 3£ # 4£ %month = ( 5£ '01', 'Jan', 6£ '02', 'Feb', 7£ '03', 'Mar', 8£ '04', 'Apr', 9£ '05', 'May', 10£ '06', 'Jun', 11£ '07', 'Jul', 12£ '08', 'Aug', 13£ '09', 'Sep', 14£ '10', 'Oct', 15£ '11', 'Nov', 16£ '12', 'Dec', 17£ ); 18 19 $pointer = \%month; 20 21 printf "\n Address of hash = $pointer\n "; 22 23 # 24 # The following lines would be used to print out the 25 # contents of the associative array if %month was used. 26 # 27 # foreach $i (sort keys %month) { 28 # printf "\n $i $pointer "; 29 # } 30 31 # 32 # The reference to the associative array via $pointer 33 # 34 foreach $i (sort keys %$pointer) { 35£ printf "$i is $pointer \n"; 36 } £ ½á¹ûÊä³öÈçÏ£º $ mth Address of hash = HASH(0x806c52c) 01 is Jan 02 is Feb 03 is Mar 04 is Apr 05 is May 06 is Jun 07 is Jul 08 is Aug 09 is Sep 10 is Oct 11 is Nov 12 is Dec £ ÓëÊý×éÀàËÆ£¬Í¨¹ýÒýÓ÷ÃÎʹþÏ£±íµÄÔªËØÐÎʽΪ$pointer£¬µ±È»£¬$indexÊǹþÏ£±íµÄ¼üÖµ£¬¶ø²»½öÊÇÊý×Ö¡£»¹Óм¸ÖÖ·ÃÎÊÐÎʽ£¬´ËÍ⣬¹¹½¨¹þÏ£±í»¹¿ÉÒÔÓÃ=>²Ù×÷·û£¬¿É¶ÁÐÔ¸üºÃЩ¡£ÏÂÃæÔÙ¿´Ò»¸öÀý×Ó£º 1£ #!/usr/bin/perl 2£ # 3£ # Using Array references 4£ # 5£ %weekday = ( 6£ £ '01' => 'Mon', 7£ £ '02' => 'Tue', 8£ £ '03' => 'Wed', 9£ £ '04' => 'Thu', 10£ '05' => 'Fri', 11£ '06' => 'Sat', 12£ '07' => 'Sun', 13£ ); 14 $pointer = \%weekday; 15 $i = '05'; 16 printf "\n ================== start test ================= \n"; 17 # 18 # These next two lines should show an output 19 # 20£ printf '$pointer is '; 21£ printf "$pointer \n"; 22£ printf '$ is '; 23£ printf "$ \n"; 24£ printf '$pointer-> is '; 25 26£ printf "$pointer->\n"; 27 # 28 # These next two lines should not show anything 29 # 30£ printf '$} is '; 31£ printf "$} \n"; 32£ printf '$} is '; 33£ printf "$}"; 34 printf "\n ================== end of test ================= \n"; 35 £ ½á¹ûÊä³öÈçÏ£º ================== start test ================= $pointer is Fri $ is Fri $pointer-> is Fri $} is $} is ================== end of test ================= £ ¿ÉÒÔ¿´µ½£¬Ç°ÈýÖÖÐÎʽµÄÊä³öÏÔʾÁËÔ¤ÆÚµÄ½á¹û£¬¶øºóÁ½ÖÖÔòûÓС£µ±Äã²»Çå³þÊÇ·ñÕýȷʱ£¬¾ÍÊä³ö½á¹û¿´¿´¡£ÔÚPerlÖУ¬Óв»Ã÷È·µÄ´úÂë¾ÍÓÃprintÓï¾äÊä³öÀ´ÊµÑéһϣ¬ÕâÄÜʹÄãÇå³þPerlÊÇÔõÑù½âÊÍÄãµÄ´úÂëµÄ¡£ Îå¡¢¶àάÊý×é £ Óï¾ä@array = list;¿ÉÒÔ´´½¨Êý×éµÄÒýÓã¬ÖÐÀ¨ºÅ¿ÉÒÔ´´½¨ÄäÃûÊý×éµÄÒýÓá£ÏÂÃæÓï¾äΪÓÃÓڻͼµÄÈýάÊý×éµÄÀý×Ó£º £ $line = ['solid' , 'black' , ['1','2','3'] , ['4','5','6']]; £ ´ËÓï¾ä½¨Á¢ÁËÒ»¸öº¬ËĸöÔªËØµÄÈýάÊý×飬±äÁ¿$lineÖ¸Ïò¸ÃÊý×顣ǰÁ½¸öÔªËØÊDZêÁ¿£¬´æÖüÏßÌõµÄÀàÐͺÍÑÕÉ«£¬ºóÁ½¸öÔªËØÊÇÄäÃûÊý×éµÄÒýÓ㬴æÖüÏßÌõµÄÆðµãºÍÖյ㡣·ÃÎÊÆäÔªËØÓï·¨ÈçÏ£º $arrayReference->[$index]£ £ single-dimensional array $arrayReference->[$index1][$index2]£ two-dimensional array $arrayReference->[$index1][$index2][$index3] three-dimensional array £ ¿ÉÒÔ´´½¨ÔÚÄãµÄÖÇÁ¦¡¢Éè¼Æ¾ÑéºÍ¼ÆËã»úµÄÄÚ´æÔÊÐíµÄÇé¿öϼ«¾¡¸´ÔӵĽṹ£¬µ«×îºÃ¶Ô¿ÉÄܶÁµ½»ò¹ÜÀíÄãµÄ´úÂëµÄÈËÓѺÃһЩ--¾¡Á¿Ê¹´úÂë¼òµ¥Ð©¡£ÁíÒ»·½Ã棬Èç¹ûÄãÏëÏò±ðÈËìÅÒ«ÄãµÄ±à³ÌÄÜÁ¦£¬Perl¸øÄã×ã¹»µÄ»ú»áºÍÄÜÁ¦±àдÁ¬×Ô¼º¶¼ÄÑÃâºýÍ¿µÄ´úÂë¡£:) £ ½¨Ò飺µ±ÄãÏëʹÓöàÓÚÈýάµÄÊý×éʱ£¬×îºÃ¿¼ÂÇʹÓÃÆäËüÊý¾Ý½á¹¹À´¼ò»¯´úÂë¡£ £ ÏÂÃæÎª´´½¨ºÍʹÓöþάÊý×éµÄÀý×Ó£º 1£ #!/usr/bin/perl 2£ # 3£ # Using Multi-dimensional Array references 4£ # 5£ $line = ['solid', 'black', ['1','2','3'] , ['4', '5', '6']]; 6£ print "\$line->[0] = $line->[0] \n"; 7£ print "\$line->[1] = $line->[1] \n"; 8£ print "\$line->[2][0] = $line->[2][0] \n"; 9£ print "\$line->[2][1] = $line->[2][1] \n"; 10 print "\$line->[2][2] = $line->[2][2] \n"; 11 print "\$line->[3][0] = $line->[3][0] \n"; 12 print "\$line->[3][1] = $line->[3][1] \n"; 13 print "\$line->[3][2] = $line->[3][2] \n"; 14 print "\n"; # The obligatory output beautifier. £ ½á¹ûÊä³öÈçÏ£º $line->[0] = solid $line->[1] = black $line->[2][0] = 1 $line->[2][1] = 2 $line->[2][2] = 3 $line->[3][0] = 4 $line->[3][1] = 5 $line->[3][2] = 6 £ ÄÇôÈýάÊý×éÓÖÈçºÎÄØ£¿ÏÂÃæÊÇÉÏÀýÂÔΪ¸Ä¶¯µÄ°æ±¾¡£ 1£ #!/usr/bin/perl 2£ # 3£ # Using Multi-dimensional Array references again 4£ # 5£ $line = ['solid', 'black', ['1','2','3', ['4', '5', '6']]]; 6£ print "\$line->[0] = $line->[0] \n"; 7£ print "\$line->[1] = $line->[1] \n"; 8£ print "\$line->[2][0] = $line->[2][0] \n"; 9£ print "\$line->[2][1] = $line->[2][1] \n"; 10 print "\$line->[2][2] = $line->[2][2] \n"; 11 print "\$line->[2][3][0] = $line->[2][3][0] \n"; 12 print "\$line->[2][3][1] = $line->[2][3][1] \n"; 13 print "\$line->[2][3][2] = $line->[2][3][2] \n"; 14 print "\n"; £ ½á¹ûÊä³öÈçÏ£º $line->[0] = solid $line->[1] = black $line->[2][0] = 1 $line->[2][1] = 2 $line->[2][2] = 3 $line->[2][3][0] = 4 $line->[2][3][1] = 5 $line->[2][3][2] = 6 £ ·ÃÎʵÚÈý²ãÔªËØµÄ·½Ê½ÐÎÈç$line->[2][3][0]£¬ÀàËÆÓÚCÓïÑÔÖеÄArray_pointer[2][3][0]¡£±¾ÀýÖУ¬Ï±ê¾ùΪÊý×Ö£¬µ±È»Òà¿ÉÓñäÁ¿´úÌæ¡£ÓÃÕâÖÖ·½·¨¿ÉÒÔ°ÑÊý×éºÍ¹þÏ£±í½áºÏÆðÀ´¹¹³É¸´ÔӵĽṹ£¬ÈçÏ£º 1 #!/usr/bin/perl 2 # 3 # Using Multi-dimensional Array and Hash references 4 # 5 %cube = ( 6 '0', ['0', '0', '0'], 7 '1', ['0', '0', '1'], 8 '2', ['0', '1', '0'], 9 '3', ['0', '1', '1'], 10 '4', ['1', '0', '0'], 11 '5', ['1', '0', '1'], 12 '6', ['1', '1', '0'], 13 '7', ['1', '1', '1'] 14 ); 15 $pointer = \%cube; 16 print "\n Da Cube \n"; 17 foreach $i (sort keys %$pointer) { 18 $list = $pointer; 19 $x = $list->[0]; 20 $y = $list->[1]; 21 $z = $list->[2]; 22 printf " Point $i = $x,$y,$z \n"; 23 } £ ½á¹ûÊä³öÈçÏ£º Da Cube Point 0 = 0,0,0 Point 1 = 0,0,1 Point 2 = 0,1,0 Point 3 = 0,1,1 Point 4 = 1,0,0 Point 5 = 1,0,1 Point 6 = 1,1,0 Point 7 = 1,1,1 £ ÕâÊÇÒ»¸ö¶¨ÒåÁ¢·½ÌåµÄÀý×Ó¡£%cubeÖб£´æµÄÊǵãºÅºÍ×ø±ê£¬×ø±êÊǸöº¬Èý¸öÊý×ÖµÄÊý×é¡£±äÁ¿$list»ñÈ¡×ø±êÊý×éµÄÒýÓãº$list = $ pointer; È»ºó·ÃÎʸ÷×ø±êÖµ£º$x = $list->[0]; ... Ò²¿ÉÓÃÈçÏ·½·¨¸ø$x¡¢$yºÍ$z¸³Öµ£º($x,$y,$z) = @$list; £ ʹÓùþÏ£±íºÍÊý×éʱ£¬ÓÃ$ºÍÓÃ->ÊÇÀàËÆµÄ£¬¶ÔÊý×é¶øÑÔÏÂÃæÁ½¸öÓï¾äµÈЧ£º £ $names[0] = "kamran"; £ $names->[0] = "kamran"; £ ¶Ô¹þÏ£±í¶øÑÔÏÂÃæÁ½¸öÓï¾äµÈЧ£º £ $lastnames = "Husain"; £ $lastnames-> = "Husain"; £ PerlÖеÄÊý×é¿ÉÒÔÔÚÔËÐÐÖд´½¨ºÍÀ©Õ¹¡£µ±Êý×éµÄÒýÓõÚÒ»´ÎÔÚµÈʽ×ó±ß³öÏÖʱ£¬¸ÃÊý×é×Ô¶¯±»´´½¨£¬¼òµ¥±äÁ¿ºÍ¶àάÊý×éÒ²ÊÇÒ»Ñù¡£ÈçϾ䣬Èç¹ûÊý×écontours²»´æÔÚ£¬Ôò±»´´½¨£º £ $contours[$x][$y][$z] = &xlate($mouseX, $mouseY); Áù¡¢×Ó³ÌÐòµÄÒýÓà £ perlÖÐ×Ó³ÌÐòµÄÒýÓÃÓëCÖк¯ÊýµÄÖ¸ÕëÀàËÆ£¬¹¹Ôì·½·¨ÈçÏ£º £ $pointer_to_sub = sub {... declaration of sub ...}; £ ͨ¹ýËù¹¹ÔìµÄÒýÓõ÷ÓÃ×Ó³ÌÐòµÄ·½·¨Îª£º £ &$pointer_to_sub(parameters); ×Ó³ÌÐòÄ£°å £ ×Ó³ÌÐòµÄ·µ»ØÖµ²»½öÏÞÓÚÊý¾Ý£¬»¹¿ÉÒÔ·µ»Ø×Ó³ÌÐòµÄÒýÓ᣷µ»ØµÄ×Ó³ÌÐòÔÚµ÷Óô¦Ö´ÐУ¬µ«È´ÊÇÔÚ×î³õ±»´´½¨µÄµ÷Óô¦±»ÉèÖã¬ÕâÊÇÓÉPerl¶ÔClosure´¦ÀíµÄ·½Ê½¾ö¶¨µÄ¡£ClosureÒâ¼´Èç¹ûÄ㶨ÒåÁËÒ»¸öº¯Êý£¬Ëü¾ÍÒÔ×î³õ¶¨ÒåµÄÄÚÈÝÔËÐС£(ClosureÏê¼ûOOPµÄ²Î¿¼Êé)ÏÂÃæµÄÀý×ÓÖУ¬ÉèÖÃÁ˶à¸ö´íÎóÐÅÏ¢ÏÔʾ×Ó³ÌÐò£¬ÕâÑùµÄ×Ó³ÌÐò¶¨Òå·½·¨¿ÉÓÃÓÚ´´½¨Ä£°å¡£ #!/usr/bin/perl sub errorMsg { my $lvl = shift; # # define the subroutine to run when called. # return sub { £ my $msg = shift; # Define the error type now. £ print "Err Level $lvl:$msg\n"; }; # print later. } $severe = errorMsg("Severe"); $fatal = errorMsg("Fatal"); $annoy = errorMsg("Annoying"); &$severe("Divide by zero"); &$fatal("Did you forget to use a semi-colon?"); &$annoy("Uninitialized variable in use"); £ ½á¹ûÊä³öÈçÏ£º Err Level Severe:Divide by zero Err Level Fatal:Did you forget to use a semi-colon? Err Level Annoying:Uninitialized variable in use £ ÉÏÀýÖУ¬×Ó³ÌÐòerrorMsgʹÓÃÁ˾ÖÓò±äÁ¿$lvl£¬ÓÃÓÚ·µ»Ø¸øµ÷ÓÃÕß¡£µ±errorMsg±»µ÷ÓÃʱ£¬$lvlµÄÖµÉèÖõ½·µ»ØµÄ×Ó³ÌÐòÄÚÈÝÖУ¬ËäÈ»ÊÇÓõÄmyº¯Êý¡£Èý´Îµ÷ÓÃÉèÖÃÁËÈý¸ö²»Í¬µÄ$lvl±äÁ¿Öµ¡£µ±errorMsg·µ»ØÊ±£¬$lvlµÄÖµ±£´æµ½Ã¿´Î±»ÉùÃ÷ʱËù²úÉúµÄ×Ó³ÌÐò´úÂëÖС£×îºóÈý¾ä¶Ô²úÉúµÄ×Ó³ÌÐòÒýÓýøÐе÷ÓÃʱ$msgµÄÖµ±»Ìæ»»£¬µ«$lvlµÄÖµÈÔÊÇÏàÓ¦×Ó³ÌÐò´úÂë´´½¨Ê±µÄÖµ¡£ £ ºÜ»ìÏýÊÇÂð£¿Êǵģ¬ËùÒÔÕâÑùµÄ´úÂëÔÚPerl³ÌÐòÖкÜÉÙ¼û¡£ Æß¡¢Êý×éÓë×Ó³ÌÐò £ Êý×éÀûÓÚ¹ÜÀíÏà¹ØÊý¾Ý£¬±¾½ÚÌÖÂÛÈçºÎÏò×Ó³ÌÐò´«µÝ¶à¸öÊý×é¡£Ç°ÃæÎÒÃǽ²¹ýÓÃ@_´«µÝ×Ó³ÌÐòµÄ²ÎÊý£¬µ«ÊÇ@_ÊÇÒ»¸öµ¥Î¬Êý×飬²»¹ÜÄã´«µÝµÄ²ÎÊýÊǶàÉÙ¸öÊý×飬¶¼°´Ðò´æÖüÔÚ@_ÖУ¬¹ÊÓÃÐÎÈçmy(@a,@b)=@_; µÄÓï¾äÀ´»ñÈ¡²ÎÊýֵʱ£¬È«²¿Öµ¶¼¸³¸øÁË@a£¬¶ø@bΪ¿Õ¡£ÄÇôÔõô°ÑÒ»¸öÒÔÉϵÄÊý×é´«µÝ¸ø×Ó³ÌÐòÄØ£¿·½·¨ÊÇÓÃÒýÓ᣼ûÏÂÀý£º #!/usr/bin/perl @names = (mickey, goofy, daffy ); @phones = (5551234, 5554321, 666 ); $i = 0; sub listem { my ($a,$b) = @_; foreach (@$a) { £ print "a[$i] = " . @$a[$i] . " " . "\tb[$i] = " . @$b[$i] ."\n"; £ $i++; } } &listem(\@names, \@phones); £ ½á¹ûÊä³öÈçÏ£º a[0] = mickey£ £ b[0] = 5551234 a[1] = goofy£ £ £ b[1] = 5554321 a[2] = daffy£ £ £ b[2] = 666 ×¢Ò⣺ 1¡¢µ±Ïë´«µÝ¸ø×Ó³ÌÐòµÄ²ÎÊýÊǶàÓÚÒ»¸öµÄÊý×éʱһ¶¨ÒªÊ¹ÓÃÒýÓᣠ2¡¢Ò»¶¨²»ÒªÔÚ×Ó³ÌÐòÖÐʹÓÃÐÎÈç (@variable)=@_; µÄÓï¾ä´¦Àí²ÎÊý£¬³ý·ÇÄãÏë°ÑËùÓвÎÊý¼¯Öе½Ò»¸ö³¤µÄÊý×éÖС£ °Ë¡¢Îļþ¾ä±úµÄÒýÓà £ ÓÐʱ£¬±ØÐ뽫ͬһÐÅÏ¢Êä³öµ½²»Í¬µÄÎļþ£¬ÀýÈ磬ij³ÌÐò¿ÉÄÜÔÚÒ»¸öʵÀýÖÐÊä³öµ½ÆÁÄ»£¬ÁíÒ»¸öÊä³öµ½´òÓ¡»ú£¬ÔÙÒ»¸öÊä³öµ½¼Ç¼Îļþ£¬ÉõÖÁͬʱÊä³öµ½ÕâÈý¸öÎļþ¡£Ïà±È½ÏÓÚÿÖÖ´¦Àíдһ¸öµ¥¶ÀµÄÓï¾ä£¬¿ÉÒÔÓиüºÃµÄʵÏÖ·½Ê½ÈçÏ£º £ spitOut(\*STDIN); £ spitOut(\*LPHANDLE); £ spitOut(\*LOGHANDLE); £ ÆäÖÐ×Ó³ÌÐòspitOutµÄ´úÂëÈçÏ£º sub spitOut { my $fh = shift; print $fh "Gee Wilbur, I like this lettuce\n"; } £ ×¢ÒâÆäÖÐÎļþ¾ä±úÒýÓõÄÓ﷨Ϊ\*FILEHANDLE¡£ |

6Â¥2005-06-14 19:18:11
yuefour
½ð³æ (ÕýʽдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 9.5
- ½ð±Ò: 1310.7
- Ìû×Ó: 838
- ÔÚÏß: 17Сʱ
- ³æºÅ: 64621
- ×¢²á: 2005-04-16
- ÐÔ±ð: GG
- רҵ: ÖÐÒ½ÄÚ¿Æ
7Â¥2005-06-14 19:22:28
miRNA
ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 16.6
- ½ð±Ò: 13289.9
- ºì»¨: 4
- Ìû×Ó: 4967
- ÔÚÏß: 10.3Сʱ
- ³æºÅ: 56231
- ×¢²á: 2005-01-07
- רҵ: ½ðÊôÓлú»¯Ñ§
|
µÚÊ®ÈýÕ PerlµÄÃæÏò¶ÔÏó±à³Ì £ ±¾Õ½éÉÜÈçºÎʹÓÃPerlµÄÃæÏò¶ÔÏó±à³Ì(OOP)ÌØÐÔ¼°ÈçºÎ¹¹½¨¶ÔÏ󣬻¹°üÀ¨¼Ì³Ð¡¢·½·¨ÖØÔغÍÊý¾Ý·â×°µÈÄÚÈÝ¡£ Ò»¡¢Ä£¿é¼ò½é £ Ä£¿é(module)¾ÍÊÇPerl°ü(pachage)¡£PerlÖеĶÔÏó»ùÓÚ¶Ô°üÖÐÊý¾ÝÏîµÄÒýÓᣣ¨ÒýÓüûµÚxÕÂÒýÓã©¡£ Ïê¼û_blank tppabs="http://www.metronet.com/">http://www.metronet.comµÄperlmodºÍperlobj¡£ £ ÔÚÓÃÆäËüÓïÑÔ½øÐÐÃæÏò¶ÔÏó±à³Ìʱ£¬ÏÈÉùÃ÷Ò»¸öÀàÈ»ºó´´½¨¸ÃÀàµÄ¶ÔÏó£¨ÊµÀý£©£¬Ìض¨ÀàËùÓжÔÏóµÄÐÐΪ·½Ê½ÊÇÏàͬµÄ£¬ÓÉÀà·½·¨È·¶¨£¬¿ÉÒÔͨ¹ý¶¨ÒåÐÂÀà»ò´ÓÏÖ´æÀà¼Ì³ÐÀ´´´½¨Àà¡£ÒÑÊìÏ¤ÃæÏò¶ÔÏó±à³ÌµÄÈË¿ÉÒÔÔÚ´ËÓöµ½Ðí¶àÊìϤµÄÊõÓï¡£PerlÒ»Ö±ÊÇÒ»¸öÃæÏò¶ÔÏóµÄÓïÑÔ£¬ÔÚPerl5ÖУ¬Óï·¨ÂÔÓб䶯£¬¸ü¹æ·¶»¯Á˶ÔÏóµÄʹÓᣠ£ ÏÂÃæÈý¸ö¶¨Òå¶ÔÀí½â¶ÔÏó¡¢ÀàºÍ·½·¨ÔÚPerlÖÐÈçºÎ¹¤×÷ÖÁ¹ØÖØÒª¡£ £ .ÀàÊÇÒ»¸öPerl°ü£¬ÆäÖк¬Ìṩ¶ÔÏó·½·¨µÄÀà¡£ £ .·½·¨ÊÇÒ»¸öPerl×Ó³ÌÐò£¬ÀàÃûÊÇÆäµÚÒ»¸ö²ÎÊý¡£ £ .¶ÔÏóÊǶÔÀàÖÐÊý¾ÝÏîµÄÒýÓᣠ¶þ¡¢PerlÖеÄÀà £ ÔÙÇ¿µ÷һϣ¬Ò»¸öPerlÀàÊǽöÊÇÒ»¸ö°ü¶øÒÑ¡£µ±Äã¿´µ½PerlÎĵµÖÐÌáµ½¡°Àࡱʱ£¬°ÑËü¿´×÷¡°°ü¡±¾ÍÐÐÁË¡£Perl5µÄÓï·¨¿ÉÒÔ´´½¨À࣬Èç¹ûÄãÒÑÊìϤC++£¬ÄÇô´ó²¿·ÖÓï·¨ÄãÒÑ¾ÕÆÎÕÁË¡£ÓëPerl4²»Í¬µÄ¸ÅÄîÊÇÓÃ˫ðºÅ(: À´±êʶ»ù±¾ÀàºÍ¼Ì³ÐÀࣨ×ÓÀࣩ¡£ £ ÃæÏò¶ÔÏóµÄÒ»¸öÖØÒªÌØÐÔÊǼ̳С£PerlÖеļ̳ÐÌØÐÔÓëÆäËüÃæÏò¶ÔÏóÓïÑÔ²»ÍêȫһÑù£¬ËüÖ»¼Ì³Ð·½·¨£¬Äã±ØÐëÓÃ×Ô¼ºµÄ»úÖÆÀ´ÊµÏÖÊý¾ÝµÄ¼Ì³Ð¡£ £ ÒòΪÿ¸öÀàÊÇÒ»¸ö°ü£¬ËùÒÔËüÓÐ×Ô¼ºµÄÃû×ֿռ估×Ô¼ºµÄ·ûºÅÃû¹ØÁªÊý×飨Ïê¼ûµÚxÕ¹ØÁªÊý×飩£¬Ã¿¸öÀàÒò¶ø¿ÉÒÔʹÓÃ×Ô¼ºµÄ¶ÀÁ¢·ûºÅÃû¼¯¡£Óë°üµÄÒýÓýáºÏ£¬¿ÉÒÔÓõ¥ÒýºÅ(')²Ù×÷·ûÀ´¶¨Î»ÀàÖеıäÁ¿£¬ÀàÖгÉÔ±µÄ¶¨Î»ÐÎʽÈ磺$class'$member¡£ÔÚPerl5ÖУ¬¿ÉÓÃ˫ðºÅÌæ´úµ¥ÒýºÅÀ´»ñµÃÒýÓã¬È磺$class'$memberÓë$class::$memberÏàͬ¡£ Èý¡¢´´½¨Àà¡£ £ ±¾½Ú½éÉÜ´´½¨Ò»¸öÐÂÀàµÄ±ØÒª²½Öè¡£ÏÂÃæÊ¹ÓõÄÀý×ÓÊÇ´´½¨Ò»¸ö³ÆÎªCocoaµÄ¼òµ¥µÄÀ࣬Æä¹¦ÄÜÊÇÊä³öÒ»¸ö¼òµ¥µÄJavaÓ¦ÓõÄÔ´ÂëµÄ±ØÒª²¿·Ö¡£·ÅÐÄ£¬Õâ¸öÀý×Ó²»ÐèÒªÄãÓÐJavaµÄ֪ʶ£¬µ«Ò²²»»áʹÄã³ÉΪJavaר¼Ò£¬ÆäÄ¿µÄÊǽ²Êö´´½¨ÀàµÄ¸ÅÄî¡£ £ Ê×ÏÈ£¬´´½¨Ò»¸öÃûΪCocoa.pmµÄ°üÎļþ(À©Õ¹ÃûpmÊǰüµÄȱʡÀ©Õ¹Ãû£¬ÒâΪPerl Module)¡£Ò»¸öÄ£¿é¾ÍÊÇÒ»¸ö°ü£¬Ò»¸ö°ü¾ÍÊÇÒ»¸öÀà¡£ÔÚ×öÆäËüÊÂ֮ǰ£¬ÏȼÓÈë¡°1;¡±ÕâÑùÒ»ÐУ¬µ±ÄãÔö¼ÓÆäËüÐÐʱ£¬¼Çס±£Áô¡°1;¡±Îª×îºóÒ»ÐС£ÕâÊÇPerl°üµÄ±ØÐèÌõ¼þ£¬·ñÔò¸Ã°ü¾Í²»»á±»Perl´¦Àí¡£ÏÂÃæÊǸÃÎļþµÄ»ù±¾½á¹¹¡£ package Cocoa; # # Put "require" statements in for all required,imported packages # # # Just add code here # 1; # terminate the package with the required 1; £ ½ÓÏÂÀ´£¬ÎÒÃÇÍù°üÀïÌí¼Ó·½·¨Ê¹Ö®³ÉΪһ¸öÀà¡£µÚÒ»¸öÐèÌí¼ÓµÄ·½·¨ÊÇnew()£¬ËüÊÇ´´½¨¶ÔÏóʱ±ØÐë±»µ÷Óõģ¬new()·½·¨ÊǶÔÏóµÄ¹¹Ô캯Êý¡£ ËÄ¡¢¹¹Ô캯Êý £ ¹¹Ô캯ÊýÊÇÀàµÄ×Ó³ÌÐò£¬Ëü·µ»ØÓëÀàÃûÏà¹ØµÄÒ»¸öÒýÓ᣽«ÀàÃûÓëÒýÓÃÏà½áºÏ³ÆÎª¡°×£¸£¡±Ò»¸ö¶ÔÏó£¬ÒòΪ½¨Á¢¸Ã½áºÏµÄº¯ÊýÃûΪbless()£¬ÆäÓ﷨Ϊ£º £ bless YeReference [,classname] £ YeReferenceÊǶԱ»¡°×£¸£¡±µÄ¶ÔÏóµÄÒýÓã¬classnameÊÇ¿ÉÑ¡Ïָ¶¨¶ÔÏó»ñÈ¡·½·¨µÄ°üÃû£¬ÆäȱʡֵΪµ±Ç°°üÃû¡£ £ ´´½¨Ò»¸ö¹¹½¨º¯ÊýµÄ·½·¨Îª·µ»ØÒÑÓë¸ÃÀà½áºÏµÄÄÚ²¿½á¹¹µÄÒýÓã¬È磺 sub new { my $this = {}; # Create an anonymous hash, and #self points to it. bless $this; # Connect the hash to the package Cocoa. return $this; # Return the reference to the hash. } 1; £ {}´´½¨Ò»¸ö¶Ô²»º¬¼ü/Öµ¶ÔµÄ¹þÏ£±í£¨¼´¹ØÁªÊý×飩µÄÒýÓ㬷µ»ØÖµ±»¸³¸ø¾ÖÓò±äÁ¿$this¡£º¯Êýbless()È¡³ö¸ÃÒýÓ㬸æËß¶ÔÏóËüÒýÓõÄÊÇCocoa£¬×îºó·µ»Ø¸ÃÒýÓ᣺¯ÊýµÄ·µ»ØÖµÏÖÔÚÖ¸ÏòÕâ¸öÄäÃû¹þÏ£±í¡£ £ ´Ónew()º¯Êý·µ»Øºó£¬$thisÒýÓñ»Ïú»Ù£¬µ«µ÷Óú¯Êý±£´æÁ˶ԸùþÏ£±íµÄÒýÓã¬Òò´Ë¸Ã¹þÏ£±íµÄÒýÓÃÊý²»»áΪÁ㣬´Ó¶øÊ¹PerlÔÚÄÚ´æÖб£´æ¸Ã¹þÏ£±í¡£´´½¨¶ÔÏó¿ÉÈçϵ÷Ó㺠£ $cup = new Cocoa; £ ÏÂÃæÓï¾äΪʹÓøðü´´½¨¶ÔÏóµÄÀý×Ó£º 1 #!/usr/bin/perl 2 push (@INC,'pwd'); 3 use Cocoa; 4 $cup = new Cocoa; £ µÚÒ»ÐÐÖ¸³öPerl½âÊÍÆ÷µÄλÖ㬵ڶþÐÐÖУ¬½«µ±Ç°Ä¿Â¼¼Óµ½Â·¾¶Ñ°ÕÒÁбí@INCÖй©Ñ°ÕÒ°üʱʹÓá£ÄãÒ²¿ÉÒÔÔÚ²»Í¬µÄĿ¼Öд´½¨ÄãµÄÄ£¿é²¢Ö¸³ö¸Ã¾ø¶Ô·¾¶¡£ÀýÈ磬Èç¹ûÔÚ/home/test/scripts/´´½¨°ü£¬µÚ¶þÐоÍÓ¦¸ÃÈçÏ£º £ push (@INC , "/home/test/scripts" ; £ ÔÚµÚÈýÐÐÖУ¬°üº¬ÉϰüCocoa.pmÒÔ»ñÈ¡½Å±¾ÖÐËùÐ蹦ÄÜ¡£useÓï¾ä¸æËßPerlÔÚ@INC·¾¶Ñ°ÕÒÎļþCocoa.pm²¢°üº¬µ½½âÎöµÄÔ´Îļþ¿½±´ÖС£useÓï¾äÊÇʹÓÃÀà±ØÐëµÄ¡£µÚËÄÐе÷ÓÃnewº¯Êý´´½¨¶ÔÏó£¬ÕâÊÇPerlµÄÃî´¦£¬Ò²ÊÇÆäÒ×»ìÏýÖ®´¦£¬Ò²ÊÇÆäÇ¿´óÖ®´¦¡£´´½¨¶ÔÏóµÄ·½·¨ÓжàÖÖ£¬¿ÉÒÔÕâÑùд£º £ $cup = cocoa->new(); £ Èç¹ûÄãÊÇC³ÌÐòÔ±£¬¿ÉÒÔÓÃ˫ðºÅÇ¿ÖÆÊ¹ÓÃCocoa°üÖеÄnew()º¯Êý£¬È磺 £ $cup = Cocoa::new(); £ ¿ÉÒÔÔÚ¹¹Ô캯ÊýÖмÓÈë¸ü¶àµÄ´úÂ룬ÈçÔÚCocoa.pmÖУ¬¿ÉÒÔÔÚÿ¸ö¶ÔÏó´´½¨Ê±Êä³öÒ»¸ö¼òµ¥ÉùÃ÷£¬»¹¿ÉÒÔÓù¹Ô캯Êý³õʼ»¯±äÁ¿»òÉèÖÃÊý×é»òÖ¸Õë¡£ ×¢Ò⣺ 1¡¢Ò»¶¨ÒªÔÚ¹¹Ô캯ÊýÖгõʼ»¯±äÁ¿£» 2¡¢Ò»¶¨ÒªÓÃmyº¯ÊýÔÚ·½·¨Öд´½¨±äÁ¿£» 3¡¢Ò»¶¨²»ÒªÔÚ·½·¨ÖÐʹÓÃlocal£¬³ý·ÇÕæµÄÏë°Ñ±äÁ¿´«µÝ¸øÆäËü×Ó³ÌÐò£» 4¡¢Ò»¶¨²»ÒªÔÚÀàÄ£¿éÖÐʹÓÃÈ«¾Ö±äÁ¿¡£ £ ¼ÓÉÏÉùÃ÷µÄCocoa¹¹Ô캯ÊýÈçÏ£º sub new { my $this = {}; print "\n /* \n ** Created by Cocoa.pm \n ** Use at own risk"; print "\n ** Did this code even get pass the javac compiler? "; print "\n **/ \n"; bless $this; return $this; } £ Ò²¿ÉÒÔ¼òµ¥µØµ÷ÓðüÄÚ»ò°üÍâµÄÆäËüº¯ÊýÀ´×ö¸ü¶àµÄ³õʼ»¯¹¤×÷£¬È磺 sub new { my $this = {} bless $this; $this->doInitialization(); return $this; } £ ´´½¨Ààʱ£¬Ó¦¸ÃÔÊÐíËü¿É±»¼Ì³Ð£¬Ó¦¸Ã¿ÉÒÔ°ÑÀàÃû×÷ΪµÚÒ»¸ö²ÎÊýÀ´µ÷ÓÃnewº¯Êý£¬ÄÇônewº¯Êý¾ÍÏóÏÂÃæµÄÓï¾ä£º sub new { my $class = shift; # Get the request class name my $this = {}; bless $this, $class # Use class name to bless() reference $this->doInitialization(); return $this; } £ ´Ë·½·¨Ê¹Óû§¿ÉÒÔÏÂÁÐÈýÖÖ·½Ê½Ö®Ò»À´½øÐе÷Ó㺠Cocoa::new() Cocoa->new() new Cocoa £ ¿ÉÒÔ¶à´ÎblessÒ»¸öÒýÓöÔÏó£¬È»¶ø£¬ÐµĽ«±»blessµÄÀà±ØÈ»°Ñ¶ÔÏóÒѱ»blessµÄÒýÓÃÈ¥µô£¬¶ÔCºÍPascal³ÌÐòÔ±À´Ëµ£¬Õâ¾ÍÏó°ÑÒ»¸öÖ¸Õ븳¸ø·ÖÅäµÄÒ»¿éÄڴ棬ÔÙ°ÑͬһָÕ븳¸øÁíÒ»¿éÄÚ´æ¶ø²»Êͷŵôǰһ¿éÄÚ´æ¡£×ÜÖ®£¬Ò»¸öPerl¶ÔÏóÿһʱ¿ÌÖ»ÄÜÊôÓÚÒ»¸öÀà¡£ £ ¶ÔÏóºÍÒýÓõÄÕæÕýÇø±ðÊÇÊ²Ã´ÄØ£¿Perl¶ÔÏó±»blessÒÔÊôÓÚijÀ࣬ÒýÓÃÔò²»È»£¬Èç¹ûÒýÓñ»bless£¬Ëü½«ÊôÓÚÒ»¸öÀ࣬Ҳ±ã³ÉÁ˶ÔÏó¡£¶ÔÏóÖªµÀ×Ô¼ºÊôÓÚÄĸöÀ࣬ÒýÓÃÔò²»ÊôÓÚÈκÎÀà¡£ ʵÀý±äÁ¿ £ ×÷Ϊ¹¹Ô캯ÊýµÄnew()º¯ÊýµÄ²ÎÊý½Ð×öʵÀý±äÁ¿¡£ÊµÀý±äÁ¿ÔÚ´´½¨¶ÔÏóµÄÿ¸öʵÀýʱÓÃÓÚ³õʼ»¯£¬ÀýÈç¿ÉÒÔÓÃnew()º¯ÊýΪ¶ÔÏóµÄÿ¸öʵÀýÆð¸öÃû×Ö¡£ £ ¿ÉÒÔÓÃÄäÃû¹þÏ£±í»òÄäÃûÊý×éÀ´±£´æÊµÀý±äÁ¿¡£ £ ÓùþÏ£±íµÄ´úÂëÈçÏ£º sub new { my $type = shift; my %parm = @_; my $this = {}; $this-> = $parm; $this-> = $parm; $this-> = $parm; bless $this, $type; } £ ÓÃÊý×é±£´æµÄ´úÂëÈçÏ£º sub new { my $type = shift; my %parm = @_; my $this = []; $this->[0] = $parm; $this->[1] = $parm; $this->[2] = $parm; bless $this, $type; } £ ¹¹Ôì¶ÔÏóʱ£¬¿ÉÒÔÈçÏ´«µÝ²ÎÊý£º £ $mug = Cocoa::new( 'Name' => 'top','x' => 10,'y' => 20 ); £ ²Ù×÷·û=>Ó붺ºÅ²Ù×÷·þ¹¦ÄÜÏàͬ£¬µ«=>¿É¶ÁÐԺ᣷ÃÎÊ·½·¨ÈçÏ£º £ print "Name=$mug->\n"; £ print "x=$mug->\n"; £ print "y=$mug->\n"; Îå¡¢·½·¨ £ PerlÀàµÄ·½·¨Ö»²»¹ýÊÇÒ»¸öPerl×Ó³ÌÐò¶øÒÑ£¬Ò²¼´Í¨³£Ëù˵µÄ³ÉÔ±º¯Êý¡£PerlµÄ·½·¨¶¨Òå²»ÌṩÈκÎÌØÊâÓï·¨£¬µ«¹æ¶¨·½·¨µÄµÚÒ»¸ö²ÎÊýΪ¶ÔÏó»òÆä±»ÒýÓõİü¡£PerlÓÐÁ½ÖÖ·½·¨£º¾²Ì¬·½·¨ºÍÐé·½·¨¡£ £ ¾²Ì¬·½·¨µÚÒ»¸ö²ÎÊýΪÀàÃû£¬Ðé·½·¨µÚÒ»¸ö²ÎÊýΪ¶ÔÏóµÄÒýÓ᣷½·¨´¦ÀíµÚÒ»¸ö²ÎÊýµÄ·½Ê½¾ö¶¨ÁËËüÊǾ²Ì¬µÄ»¹ÊÇÐéµÄ¡£¾²Ì¬·½·¨Ò»°ãºöÂÔµôµÚÒ»¸ö²ÎÊý£¬ÒòΪËüÃÇÒѾ֪µÀ×Ô¼ºÔÚÄĸöÀàÁË£¬¹¹Ô캯Êý¼´¾²Ì¬·½·¨¡£Ðé·½·¨Í¨³£Ê×ÏȰѵÚÒ»¸ö²ÎÊýshiftµ½±äÁ¿self»òthisÖУ¬È»ºó½«¸ÃÖµ×÷ÆÕͨµÄÒýÓÃʹÓá£È磺 1. sub nameLister { 2.£ £ my $this = shift; 3.£ £ my ($keys ,$value ); 4.£ £ while (($key, $value) = each (%$this)) { 5.£ £ £ £ print "\t$key is $value.\n"; 6.£ £ } 7. } Áù¡¢·½·¨µÄÊä³ö £ Èç¹ûÄãÏÖÔÚÏëÒýÓÃCocoa.pm°ü£¬½«»áµÃµ½±àÒë´íÎó˵δÕÒµ½·½·¨£¬ÕâÊÇÒòΪCocoa.pmµÄ·½·¨»¹Ã»ÓÐÊä³ö¡£Êä³ö·½·¨ÐèÒªExporterÄ£¿é£¬ÔÚ°üµÄ¿ªÊ¼²¿·Ö¼ÓÉÏÏÂÁÐÁ½ÐУº £ require Exporter; £ @ISA = qw (Exporter); £ ÕâÁ½Ðаüº¬ÉÏExporter.pmÄ£¿é£¬²¢°ÑExporterÀàÃû¼ÓÈë@ISAÊý×éÒÔ¹©²éÕÒ¡£½ÓÏÂÀ´°ÑÄã×Ô¼ºµÄÀà·½·¨ÁÐÔÚ@EXPORTÊý×éÖоͿÉÒÔÁË¡£ÀýÈçÏëÊä³ö·½·¨closeMainºÍdeclareMain£¬Óï¾äÈçÏ£º £ @EXPORT = qw (declareMain , closeMain); £ PerlÀàµÄ¼Ì³ÐÊÇͨ¹ý@ISAÊý×éʵÏֵġ£@ISAÊý×é²»ÐèÒªÔÚÈκΰüÖж¨Ò壬Ȼ¶ø£¬Ò»µ©Ëü±»¶¨Ò壬Perl¾Í°ÑËü¿´×÷Ŀ¼ÃûµÄÌØÊâÊý×é¡£ËüÓë@INCÊý×éÀàËÆ£¬@INCÊǰüº¬ÎļþµÄѰÕÒ·¾¶¡£@ISAÊý×麬ÓÐÀà(°ü)Ãû£¬µ±Ò»¸ö·½·¨ÔÚµ±Ç°°üÖÐδÕÒµ½Ê±¾Íµ½@ISAÖеİüȥѰÕÒ¡£@ISAÖл¹º¬Óе±Ç°Àà¼Ì³ÐµÄ»ùÀàÃû¡£ £ ÀàÖе÷ÓõÄËùÓз½·¨±ØÐëÊôÓÚͬһ¸öÀà»ò@ISAÊý×鶨ÒåµÄ»ùÀà¡£Èç¹ûÒ»¸ö·½·¨ÔÚ@ISAÊý×éÖÐδÕÒµ½£¬Perl¾Íµ½AUTOLOAD()×Ó³ÌÐòÖÐѰÕÒ£¬Õâ¸ö¿ÉÑ¡µÄ×Ó³ÌÐòÔÚµ±Ç°°üÖÐÓÃsub¶¨Òå¡£ÈôʹÓÃAUTOLOAD×Ó³ÌÐò£¬±ØÐëÓÃuse Autoload;Óï¾äµ÷ÓÃautoload.pm°ü¡£AUTOLOAD×Ó³ÌÐò³¢ÊÔ´ÓÒѰ²×°µÄPerl¿âÖÐ×°ÔØµ÷Óõķ½·¨¡£Èç¹ûAUTOLOADҲʧ°ÜÁË£¬PerlÔÙµ½UNIVERSALÀà×ö×îºóÒ»´Î³¢ÊÔ£¬Èç¹ûÈÔʧ°Ü£¬Perl¾ÍÉú³É¹ØÓÚ¸ÃÎÞ·¨½âÎöº¯ÊýµÄ´íÎó¡£ Æß¡¢·½·¨µÄµ÷Óà £ µ÷ÓÃÒ»¸ö¶ÔÏóµÄ·½·¨ÓÐÁ½ÖÖ·½·¨£¬Ò»ÊÇͨ¹ý¸Ã¶ÔÏóµÄÒýÓã¨Ðé·½·¨£©£¬Ò»ÊÇÖ±½ÓʹÓÃÀàÃû£¨¾²Ì¬·½·¨£©¡£µ±È»¸Ã·½·¨±ØÐëÒѱ»Êä³ö¡£ÏÖÔÚ¸øCocoaÀàÔö¼ÓһЩ·½·¨£¬´úÂëÈçÏ£º package Cocoa; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(setImports, declareMain, closeMain); # # This routine creates the references for imports in Java functions # sub setImports{ my $class = shift @_; my @names = @_; foreach (@names) { £ print "import " . $_ . ";\n"; } } # # This routine declares the main function in a Java script # sub declareMain{ my $class = shift @_; my ( $name, $extends, $implements) = @_; print "\n public class $name"; if ($extends) { £ print " extends " . $extends; } if ($implements) { £ print " implements " . $implements; } print " { \n"; } # # This routine declares the main function in a Java script # sub closeMain{ print "} \n"; } # # This subroutine creates the header for the file. # sub new { my $this = {}; print "\n /* \n ** Created by Cocoa.pm \n ** Use at own risk \n */ \n"; bless $this; return $this; } 1; £ ÏÖÔÚ£¬ÎÒÃÇдһ¸ö¼òµ¥µÄPerl½Å±¾À´Ê¹ÓøÃÀàµÄ·½·¨£¬ÏÂÃæÊÇ´´½¨Ò»¸öJava appletÔ´´úÂë¹Ç¼ÜµÄ½Å±¾´úÂ룺 #!/usr/bin/perl use Cocoa; $cup = new Cocoa; $cup->setImports( 'java.io.InputStream', 'java.net.*'); $cup->declareMain( "Msg" , "java.applet.Applet", "Runnable" ; $cup->closeMain(); £ Õâ¶Î½Å±¾´´½¨ÁËÒ»¸ö½Ð×öMsgµÄJava applet£¬ËüÀ©Õ¹(extend)ÁËjava.applet.AppletСӦÓóÌÐò²¢Ê¹Ö®¿ÉÔËÐÐ(runnable)£¬ÆäÖÐ×îºóÈýÐÐÒ²¿ÉÒÔд³ÉÈçÏ£º Cocoa::setImports($cup, 'java.io.InputStream', 'java.net.*'); Cocoa::declareMain($cup, "Msg" , "java.applet.Applet", "Runnable" ; Cocoa::closeMain($cup); £ ÆäÔËÐнá¹ûÈçÏ£º /* ** Created by Cocoa.pm ** Use at own risk */ import java.io.InputStream; import java.net.*; public class Msg extends java.applet.Applet implements Runnable { } £ ×¢Ò⣺Èç¹ûÓÃ->²Ù×÷·ûµ÷Ó÷½·¨£¨Ò²½Ð¼ä½Óµ÷Óã©£¬²ÎÊý±ØÐëÓÃÀ¨ºÅÀ¨ÆðÀ´£¬È磺$cup->setImports( 'java.io.InputStream', 'java.net.*');¶øË«Ã°ºÅµ÷ÓÃÈ磺Cocoa::setImports($cup, 'java.io.InputStream', 'java.net.*');Ò²¿ÉÈ¥µôÀ¨ºÅд³É£ºCocoa::setImports $cup, 'java.io.InputStream', 'java.net.*' ; °Ë¡¢ÖØÔØ £ ÓÐʱÐèÒªÖ¸¶¨Ê¹ÓÃÄĸöÀàµÄ·½·¨£¬ÈçÁ½¸ö²»Í¬µÄÀàÓÐͬÃû·½·¨µÄʱºò¡£¼ÙÉèÀàEspressoºÍQava¶¼¶¨ÒåÁË·½·¨grind£¬¿ÉÒÔÓÃ::²Ù×÷·ûÖ¸¶¨Ê¹ÓÃQavaµÄ·½·¨£º £ $mess = Qava::grind("whole","lotta","bags" ; £ Qava::grind($mess, "whole","lotta","bags" ; £ ¿ÉÒÔ¸ù¾Ý³ÌÐòµÄÔËÐÐÇé¿öÀ´Ñ¡ÔñʹÓÃÄĸöÀàµÄ·½·¨£¬Õâ¿ÉÒÔͨ¹ýʹÓ÷ûºÅÒýÓÃÈ¥µ÷ÓÃÀ´ÊµÏÖ£º £ $method = $local ? "Qava::" : "Espresso::"; £ $cup->grind(@args); ¾Å¡¢Îö¹¹º¯Êý £ Perl¸ú×Ù¶ÔÏóµÄÁ´½ÓÊýÄ¿£¬µ±Ä³¶ÔÏóµÄ×îºóÒ»¸öÓ¦ÓÃÊͷŵ½ÄÚ´æ³ØÊ±£¬¸Ã¶ÔÏó¾Í×Ô¶¯Ïú»Ù¡£¶ÔÏóµÄÎö¹¹·¢ÉúÔÚ´úÂëÍ£Ö¹ºó£¬½Å±¾½«Òª½áÊøÊ±¡£¶ÔÓÚÈ«¾Ö±äÁ¿¶øÑÔ£¬Îö¹¹·¢ÉúÔÚ×îºóÒ»ÐдúÂëÔËÐÐÖ®ºó¡£ £ Èç¹ûÄãÏëÔÚ¶ÔÏó±»ÊÍ·Å֮ǰ»ñÈ¡¿ØÖÆÈ¨£¬¿ÉÒÔ¶¨ÒåDESTROY()·½·¨¡£DESTROY()ÔÚ¶ÔÏó½«ÊÍ·Åǰ±»µ÷Óã¬Ê¹Äã¿ÉÒÔ×öһЩÇåÀí¹¤×÷¡£DESTROY()º¯Êý²»×Ô¶¯µ÷ÓÃÆäËüDESTROY()º¯Êý£¬Perl²»×öÄÚÖõÄÎö¹¹¹¤×÷¡£Èç¹û¹¹Ô캯Êý´Ó»ùÀà¶à´Îbless£¬DESTROY()¿ÉÄÜÐèÒªµ÷ÓÃÆäËüÀàµÄDESTROY()º¯Êý¡£µ±Ò»¸ö¶ÔÏó±»ÊÍ·Åʱ£¬ÆäÄÚº¬µÄËùÓжÔÏóÒýÓÃ×Ô¶¯ÊÍ·Å¡¢Ïú»Ù¡£ £ Ò»°ãÀ´Ëµ£¬²»ÐèÒª¶¨ÒåDESTROY()º¯Êý£¬Èç¹ûÐèÒª£¬ÆäÐÎʽÈçÏ£º sub DESTROY { # # Add code here. # } £ ÒòΪ¶àÖÖÄ¿µÄ£¬PerlʹÓÃÁ˼òµ¥µÄ¡¢»ùÓÚÒýÓõÄÀ¬»ø»ØÊÕϵͳ¡£ÈκζÔÏóµÄÒýÓÃÊýÄ¿±ØÐë´óÓÚÁ㣬·ñÔò¸Ã¶ÔÏóµÄÄÚ´æ¾Í±»ÊÍ·Å¡£µ±³ÌÐòÍ˳öʱ£¬PerlµÄÒ»¸ö³¹µ×µÄ²éÕÒ²¢Ïú»Ùº¯Êý½øÐÐÀ¬»ø»ØÊÕ£¬½ø³ÌÖеÄÒ»Çб»¼òµ¥µØÉ¾³ý¡£ÔÚUNIXÀàµÄϵͳÖУ¬ÕâÏñÊǶàÓàµÄ£¬µ«ÔÚÄÚǶʽϵͳ»ò¶àÏ̻߳·¾³ÖÐÕâȷʵºÜ±ØÒª¡£ Ê®¡¢¼Ì³Ð £ Àà·½·¨Í¨¹ý@ISAÊý×é¼Ì³Ð£¬±äÁ¿µÄ¼Ì³Ð±ØÐëÃ÷È·É趨¡£ÏÂÀý´´½¨Á½¸öÀàBean.pmºÍCoffee.pm£¬ÆäÖÐCoffee.pm¼Ì³ÐBean.pmµÄһЩ¹¦ÄÜ¡£´ËÀýÑÝʾÈçºÎ´Ó»ùÀࣨ»ò³Æ³¬Àࣩ¼Ì³ÐʵÀý±äÁ¿£¬Æä·½·¨Îªµ÷ÓûùÀàµÄ¹¹Ô캯Êý²¢°Ñ×Ô¼ºµÄʵÀý±äÁ¿¼Óµ½Ð¶ÔÏóÖС£ £ Bean.pm´úÂëÈçÏ£º package Bean; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(setBeanType); sub new { my $type = shift; my $this = {}; $this-> = 'Colombian'; bless $this, $type; return $this; } # # This subroutine sets the class name sub setBeanType{ my ($class, $name) = @_; $class-> = $name; print "Set bean to $name \n"; } 1; £ ´ËÀàÖУ¬ÓÃ$this±äÁ¿ÉèÖÃÒ»¸öÄäÃû¹þÏ£±í£¬½«'Bean'ÀàÐÍÉèΪ'Colombian'¡£·½·¨setBeanType()ÓÃÓڸıä'Bean'ÀàÐÍ£¬ËüʹÓÃ$classÒýÓûñµÃ¶Ô¶ÔÏó¹þÏ£±íµÄ·ÃÎÊ¡£ £ Coffee.pm´úÂëÈçÏ£º 1£ # 2£ # The Coffee.pm file to illustrate inheritance. 3£ # 4£ package Coffee; 5£ require Exporter; 6£ require Bean; 7£ @ISA = qw(Exporter, Bean); 8£ @EXPORT = qw(setImports, declareMain, closeMain); 9£ # 10 # set item 11 # 12 sub setCoffeeType{ 13£ my ($class,$name) = @_; 14£ $class-> = $name; 15£ print "Set coffee type to $name \n"; 16£ } 17 # 18 # constructor 19 # 20 sub new { 21£ my $type = shift; 22£ my $this = Bean->new(); ##### <- LOOK HERE!!! #### 23£ $this-> = 'Instant'; # unless told otherwise 24£ bless $this, $type; 25£ return $this; 26£ } 27 1; £ µÚ6ÐеÄrequire Bean;Óï¾ä°üº¬ÁËBean.pmÎļþºÍËùÓÐÏà¹Øº¯Êý£¬·½·¨setCoffeeType()ÓÃÓÚÉèÖþÖÓò±äÁ¿$class->µÄÖµ¡£ÔÚ¹¹Ô캯Êýnew()ÖУ¬$thisÖ¸ÏòBean.pm·µ»ØµÄÄäÃû¹þÏ£±íµÄÖ¸Õ룬¶ø²»ÊÇÔÚ±¾µØ´´½¨Ò»¸ö£¬ÏÂÃæÁ½¸öÓï¾ä·Ö±ðΪ´´½¨²»Í¬µÄ¹þÏ£±í´Ó¶øÓëBean.pm¹¹Ô캯Êý´´½¨µÄ¹þÏ£±íÎ޹صÄÇé¿öºÍ¼Ì³ÐµÄÇé¿ö£º £ my $this = {}; #·Ç¼Ì³Ð £ my $this = $theSuperClass->new(); #¼Ì³Ð £ ÏÂÃæ´úÂëÑÝʾÈçºÎµ÷Óü̳еķ½·¨£º 1£ #!/usr/bin/perl 2£ push (@INC,'pwd'); 3£ use Coffee; 4£ $cup = new Coffee; 5£ print "\n -------------------- Initial values ------------ \n"; 6£ print "Coffee: $cup-> \n"; 7£ print "Bean: $cup-> \n"; 8£ print "\n -------------------- Change Bean Type ---------- \n"; 9£ $cup->setBeanType('Mixed'); 10 print "Bean Type is now $cup-> \n"; 11 print "\n ------------------ Change Coffee Type ---------- \n"; 12 $cup->setCoffeeType('Instant'); 13 print "Type of coffee: $cup-> \n"; £ ¸Ã´úÂëµÄ½á¹ûÊä³öÈçÏ£º -------------------- Initial values ------------ Coffee: Instant Bean: Colombian -------------------- Change Bean Type ---------- Set bean to Mixed Bean Type is now Mixed ------------------ Change Coffee Type ---------- Set coffee type to Instant Type of coffee: Instant £ ÉÏÊö´úÂëÖУ¬ÏÈÊä³ö¶ÔÏó´´½¨Ê±¹þÏ£±íÖÐË÷ÒýΪ'Bean'ºÍ'Coffee'µÄÖµ£¬È»ºóµ÷Óø÷³ÉÔ±º¯Êý¸Ä±äÖµºóÔÙÊä³ö¡£ £ ·½·¨¿ÉÒÔÓжà¸ö²ÎÊý£¬ÏÖÔÚÏòCoffee.pmÄ£¿éÔö¼Óº¯ÊýmakeCup()£¬´úÂëÈçÏ£º sub makeCup { my ($class, $cream, $sugar, $dope) = @_; print "\n================================== \n"; print "Making a cup \n"; print "Add cream \n" if ($cream); print "Add $sugar sugar cubes\n" if ($sugar); print "Making some really addictive coffee ;-) \n" if ($dope); print "================================== \n"; } £ ´Ëº¯Êý¿ÉÓÐÈý¸ö²ÎÊý£¬²»Í¬ÊýÄ¿¡¢ÖµµÄ²ÎÊý²úÉú²»Í¬µÄ½á¹û£¬ÀýÈ磺 1£ #!/usr/bin/perl 2£ push (@INC,'pwd'); 3£ use Coffee; 4£ $cup = new Coffee; 5£ # 6£ # With no parameters 7£ # 8£ print "\n Calling with no parameters: \n"; 9£ $cup->makeCup; 10 # 11 # With one parameter 12 # 13 print "\n Calling with one parameter: \n"; 14 $cup->makeCup('1'); 15 # 16 # With two parameters 17 # 18 print "\n Calling with two parameters: \n"; 19 $cup->makeCup(1,'2'); 20 # 21 # With all three parameters 22 # 23 print "\n Calling with three parameters: \n"; 24 $cup->makeCup('1',3,'1'); £ Æä½á¹ûÊä³öÈçÏ£º Calling with no parameters: ================================== Making a cup ================================== Calling with one parameter: ================================== Making a cup Add cream ================================== Calling with two parameters: ================================== Making a cup Add cream Add 2 sugar cubes ================================== Calling with three parameters: ================================== Making a cup Add cream Add 3 sugar cubes Making some really addictive coffee ;-) ================================== £ ÔÚ´ËÀýÖУ¬º¯ÊýmakeCup()µÄ²ÎÊý¼È¿ÉΪ×Ö·û´®Ò²¿ÉΪÕûÊý£¬´¦Àí½á¹ûÏàͬ£¬ÄãÒ²¿ÉÒÔ°ÑÕâÁ½ÖÖÀàÐ͵ÄÊý¾Ý´¦ÀíÇø·Ö¿ª¡£ÔÚ¶Ô²ÎÊýµÄ´¦ÀíÖУ¬¿ÉÒÔÉèÖÃȱʡµÄÖµ£¬Ò²¿ÉÒÔ¸ù¾Ýʵ¼ÊÊäÈë²ÎÊýÖµµÄ¸öÊý¸øÓ費ͬ´¦Àí¡£ ʮһ¡¢×ÓÀà·½·¨µÄÖØÔØ £ ¼Ì³ÐµÄºÃ´¦ÔÚÓÚ¿ÉÒÔ»ñµÃ»ùÀàÊä³öµÄ·½·¨µÄ¹¦ÄÜ£¬¶øÓÐʱÐèÒª¶Ô»ùÀàµÄ·½·¨ÖØÔØÒÔ»ñµÃ¸ü¾ßÌå»ò²»Í¬µÄ¹¦ÄÜ¡£ÏÂÃæÔÚBean.pmÀàÖмÓÈë·½·¨printType()£¬´úÂëÈçÏ£º sub printType { my $class = shift @_; print "The type of Bean is $class-> \n"; } £ È»ºó¸üÐÂÆä@EXPORTÊý×éÀ´Êä³ö£º £ @EXPORT = qw ( setBeanType , printType ); £ ÏÖÔÚÀ´µ÷Óú¯ÊýprintType()£¬ÓÐÈýÖÖµ÷Ó÷½·¨£º $cup->Coffee::printType(); $cup->printType(); $cup->Bean::printType(); £ Êä³ö·Ö±ðÈçÏ£º The type of Bean is Mixed The type of Bean is Mixed The type of Bean is Mixed £ Ϊʲô¶¼Ò»ÑùÄØ£¿ÒòΪÔÚ×ÓÀàÖÐûÓж¨Ò庯ÊýprintType()£¬ËùÒÔʵ¼Ê¾ùµ÷ÓÃÁË»ùÀàÖеķ½·¨¡£Èç¹ûÏëʹ×ÓÀàÓÐÆä×Ô¼ºµÄprintType()º¯Êý£¬±ØÐëÔÚCoffee.pmÀàÖмÓÒÔ¶¨Ò壺 # # This routine prints the type of $class-> # sub printType { my $class = shift @_; print "The type of Coffee is $class-> \n"; } £ È»ºó¸üÐÂÆä@EXPORTÊý×飺 £ @EXPORT = qw(setImports, declareMain, closeMain, printType); £ ÏÖÔÚÊä³ö½á¹û±ä³ÉÁË£º The type of Coffee is Instant The type of Coffee is Instant The type of Bean is Mixed £ ÏÖÔÚÖ»Óе±¸ø¶¨ÁËBean::ʱ²Åµ÷ÓûùÀàµÄ·½·¨£¬·ñÔòÖ±½Óµ÷ÓÃ×ÓÀàµÄ·½·¨¡£ £ ÄÇôÈç¹û²»ÖªµÀ»ùÀàÃû¸ÃÈçºÎµ÷ÓûùÀà·½·¨ÄØ£¿·½·¨ÊÇʹÓÃαÀà±£Áô×ÖSUPER::¡£ÔÚÀà·½·¨ÄÚʹÓÃÓï·¨È磺$this->SUPER::function(...argument list...); £¬Ëü½«´Ó@ISAÁбíÖÐѰÕÒ¡£¸Õ²ÅµÄÓï¾äÓÃSUPER::Ìæ»»Bean::¿ÉÒÔдΪ$cup->SUPER::printType(); £¬Æä½á¹ûÊä³öÏàͬ£¬Îª£º The type of Bean is Mixed Ê®¶þ¡¢PerlÀàºÍ¶ÔÏóµÄһЩעÊÍ £ OOPµÄ×î´óºÃ´¦¾ÍÊÇ´úÂëÖØÓá£OOPÓÃÊý¾Ý·â×°À´Òþ²ØÒ»Ð©¸´ÔӵĴúÂ룬PerlµÄ°üºÍÄ£¿éͨ¹ýmyº¯ÊýÌṩÊý¾Ý·â×°¹¦ÄÜ£¬µ«ÊÇPerl²¢²»±£Ö¤×ÓÀàÒ»¶¨²»»áÖ±½Ó·ÃÎÊ»ùÀàµÄ±äÁ¿£¬Õâȷʵ¼õÉÙÁËÊý¾Ý·â×°µÄºÃ´¦£¬ËäÈ»ÕâÖÖ¶¯×÷ÊÇ¿ÉÒÔ×öµ½µÄ£¬µ«È´ÊǸöºÜ»µµÄ±à³Ì·ç¸ñ¡£ ×¢Ò⣺ 1¡¢Ò»¶¨ÒªÍ¨¹ý·½·¨À´·ÃÎÊÀà±äÁ¿¡£ 2¡¢Ò»¶¨²»Òª´ÓÄ£¿éÍⲿֱ½Ó·ÃÎÊÀà±äÁ¿¡£ £ µ±±àд°üʱ£¬Ó¦¸Ã±£Ö¤·½·¨ËùÐèµÄÌõ¼þÒѾ߱¸»òͨ¹ý²ÎÊý´«µÝ¸øËü¡£ÔÚ°üÄÚ²¿£¬Ó¦±£Ö¤¶ÔÈ«¾Ö±äÁ¿µÄ·ÃÎÊÖ»ÓÃͨ¹ý·½·¨´«µÝµÄÒýÓÃÀ´·ÃÎÊ¡£¶ÔÓÚ·½·¨ÒªÊ¹Óõľ²Ì¬»òÈ«¾ÖÊý¾Ý£¬Ó¦¸ÃÔÚ»ùÀàÖÐÓÃlocal()À´¶¨Ò壬×ÓÀàͨ¹ýµ÷ÓûùÀàÀ´»ñÈ¡¡£ÓÐʱ£¬×ÓÀà¿ÉÄÜÐèÒª¸Ä±äÕâÖÖÊý¾Ý£¬Õâʱ£¬»ùÀà¿ÉÄܾͲ»ÖªµÀÔõÑùȥѰÕÒеÄÊý¾Ý£¬Òò´Ë£¬Õâʱ×îºÃ¶¨Òå¶Ô¸ÃÊý¾ÝµÄÒýÓã¬×ÓÀàºÍ»ùÀ඼ͨ¹ýÒýÓÃÀ´¸Ä±ä¸ÃÊý¾Ý¡£ £ ×îºó£¬Ä㽫¿´µ½ÈçÏ·½Ê½À´Ê¹ÓöÔÏóºÍÀࣺ £ use coffee::Bean; £ Õâ¾äÓï¾äµÄº¬ÒåÊÇ¡°ÔÚ@INCÊý×éËùÓÐĿ¼µÄCoffee×ÓĿ¼À´Ñ°ÕÒBean.pm¡±¡£Èç¹û°ÑBean.pmÒÆµ½./CoffeeĿ¼£¬ÉÏÃæµÄÀý×Ó½«ÓÃÕâÒ»useÓï¾äÀ´¹¤×÷¡£ÕâÑùµÄºÃ´¦ÊÇÓÐÌõÀíµØ×éÖ¯ÀàµÄ´úÂë¡£ÔÙÈ磬ÏÂÃæµÄÓï¾ä£º £ use Another::Sub::Menu; £ Òâζ×ÅÈçÏÂ×ÓĿ¼Ê÷£º £ ./Another/Sub/Menu.pm µÚÊ®ËÄÕ Perl5µÄ°üºÍÄ£¿é Ò»¡¢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Ä£¿é POSIXPOSIX±ê×¼£¨IEEE 1003.1£©µÄPerl½Ó¿Ú£ Socket×°ÔØCÓïÑÔµÄÌ×½Ó×Ö´¦Àí»úÖÆ £ PerlÎĵµÖÐÓÐÍêÕûµÄÔ¤¶¨ÒåÄ£¿éÁÐ±í¡£ £ ×¢£ºÊÀ½ç¸÷µØµÄPerl 5Óû§Ð´ÁËÐí¶àÓÐÓõÄÄ£¿é£¬CPAN(Comprehensive Perl Archive Network)µÄPerlÎĵµÓÐÆäÍêÕûµÄÁÐ±í¡£¹ØÓÚCPANµÄ¸ü¶àÐÅÏ¢¼ûÆäÍøÖ·£º_blank tppabs="http://www.perl.com/perl/CPAN/README.html">http://www.perl.com/perl/CPAN/README.html¡£ |

8Â¥2005-06-14 19:24:54
miRNA
ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)
Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 16.6
- ½ð±Ò: 13289.9
- ºì»¨: 4
- Ìû×Ó: 4967
- ÔÚÏß: 10.3Сʱ
- ³æºÅ: 56231
- ×¢²á: 2005-01-07
- רҵ: ½ðÊôÓлú»¯Ñ§
|
¸½Â¼: Ò»¡¢½ø³Ì´¦Àíº¯Êý 1¡¢½ø³ÌÆô¶¯º¯Êý º¯ÊýÃûeval µ÷ÓÃÓï·¨eval(string) ½â˵½«string¿´×÷PerlÓï¾äÖ´ÐС£ ÕýÈ·Ö´Ðкó£¬ÏµÍ³±äÁ¿$@Ϊ¿Õ´®£¬Èç¹ûÓдíÎó£¬$@ÖÐΪ´íÎóÐÅÏ¢¡£ Àý×Ó$print = "print (\"hello,world\\n\");"; eval ($print); ½á¹ûÊä³öhello, world º¯ÊýÃûsystem µ÷ÓÃÓï·¨system(list) ½â˵listÖеÚÒ»¸öÔªËØÎª³ÌÐòÃû£¬ÆäÓàΪ²ÎÊý¡£ systemÆô¶¯Ò»¸ö½ø³ÌÔËÐгÌÐò²¢µÈ´ýÆä½áÊø£¬³ÌÐò½áÊøºó´íÎó´úÂë×óÒÆ°Ëλ³ÉΪ·µ»ØÖµ¡£ Àý×Ó@proglist = ("echo", "hello,world!"); system(@proglist); ½á¹ûÊä³öhello, world! º¯ÊýÃûfork µ÷ÓÃÓï·¨procid = fork(); ½â˵´´½¨³ÌÐòµÄÁ½¸ö¿½±´--¸¸½ø³ÌºÍ×Ó½ø³Ì--ͬʱÔËÐС£×Ó½ø³Ì·µ»ØÁ㣬¸¸½ø³Ì·µ»Ø·ÇÁãÖµ£¬´ËֵΪ×Ó³ÌÐòµÄ½ø³ÌIDºÅ¡£ Àý×Ó$retval = fork(); if ($retval == 0) { # this is the child process exit; # this terminates the child process } else { # this is the parent process } ½á¹ûÊä³öÎÞ º¯ÊýÃûpipe µ÷ÓÃÓï·¨pipe (infile, outfile); ½â˵ÓëforkºÏÓ㬸ø¸¸½ø³ÌºÍ×Ó½ø³ÌÌṩͨÐŵķ½Ê½¡£Ë͵½outfileÎļþ±äÁ¿µÄÐÅÏ¢¿ÉÒÔͨ¹ýinfileÎļþ±äÁ¿¶ÁÈ¡¡£²½Ö裺 1¡¢µ÷ÓÃpipe 2¡¢ÓÃfork½«³ÌÐò·Ö³É¸¸½ø³ÌºÍ×Ó½ø³Ì 3¡¢Ò»¸ö½ø³Ì¹Øµôinfile£¬ÁíÒ»¸ö¹Øµôoutfile Àý×Ópipe (INPUT, OUTPUT); $retval = fork(); if ($retval != 0) { # this is the parent process close (INPUT); print ("Enter a line of input:\n"); $line = print OUTPUT ($line); } else { # this is the child process close (OUTPUT); $line = ; print ($line); exit (0); } ½á¹ûÊä³ö$ program Enter a line of input: Here is a test line Here is a test line $ º¯ÊýÃûexec µ÷ÓÃÓï·¨exec (list); ½â˵ÓësystemÀàËÆ£¬Çø±ðÊÇÆô¶¯Ð½ø³Ìǰ½áÊøµ±Ç°³ÌÐò¡£³£ÓëforkºÏÓ㬵±fork·Ö³ÉÁ½¸ö½ø³Ìºó£¬×Ó½ø³ÌÓÃexecÆô¶¯ÁíÒ»¸ö³ÌÐò¡£ Àý×Ó£ ½á¹ûÊä³ö º¯ÊýÃûsyscall µ÷ÓÃÓï·¨syscall (list); ½â˵µ÷ÓÃϵͳº¯Êý£¬listµÚÒ»¸öÔªËØÊÇϵͳµ÷ÓÃÃû£¬ÆäÓàΪ²ÎÊý¡£ Èç¹û²ÎÊýÊÇÊý×Ö£¬¾Íת»¯³ÉCµÄÕûÐÍÊý(type int)¡£·ñÔò´«µÝ×Ö·û´®µÄÖ¸Õë¡£Ïê¼ûUNIXµÄ°ïÖú»òPerlÎĵµ¡£ ʹÓÃsyscall±ØÐë°üº¬Îļþsyscall.pl£¬¼´£º require ("syscall.ph"); Àý×Ó ½á¹ûÊä³ö 2¡¢½ø³ÌÖÕÖ¹º¯Êý º¯ÊýÃûdie µ÷ÓÃÓï·¨die (message); ½â˵ÖÕÖ¹³ÌÐò²¢ÏòSTDERRÊä³ö´íÎóÐÅÏ¢¡£message¿ÉÒÔΪ×Ö·û´®»òÁÐ±í¡£Èç¹û×îºóÒ»¸ö²ÎÊý²»°üº¬»»Ðзû£¬Ôò³ÌÐòÎļþÃûºÍÐкÅÒ²±»Êä³ö¡£ Àý×Ódie ("Cannot open input file"); ½á¹ûÊä³öCannot open input file at myprog line 6. º¯ÊýÃûwarn µ÷ÓÃÓï·¨warn (message); ½â˵ÓëdieÀàËÆ£¬Çø±ðÊDz»ÖÕÖ¹³ÌÐò¡£ Àý×Ówarn("Danger! Danger!\n"); ½á¹ûÊä³öDanger! Danger! º¯ÊýÃûexit µ÷ÓÃÓï·¨exit (retcode); ½â˵ÖÕÖ¹³ÌÐò²¢Ö¸¶¨·µ»ØÖµ¡£ Àý×Óexit(2); ½á¹ûÊä³öÎÞ º¯ÊýÃûkill µ÷ÓÃÓï·¨kill (signal, proclist); ½â˵¸øÒ»×é½ø³Ì·¢ËÍÐźš£ signalÊÇ·¢Ë͵ÄÊý×ÖÐźţ¬9Ϊɱµô½ø³Ì¡£ proclistÊǽø³ÌIDÁÐ±í¡£Ïê¼ûkillµÄUNIX°ïÖú¡£ Àý×Ó ½á¹ûÊä³ö 3¡¢½ø³Ì¿ØÖƺ¯Êý º¯ÊýÃûsleep µ÷ÓÃÓï·¨sleep (time); ½â˵½«³ÌÐòÔÝÍ£Ò»¶Îʱ¼ä¡£timeÊÇÍ£Ö¹µÄÃëÊý¡£·µ»ØÖµÎªÊµ¼ÊÍ£Ö¹µÄÃëÊý¡£ Àý×Ósleep (5); ½á¹ûÊä³öÎÞ º¯ÊýÃûwait µ÷ÓÃÓï·¨procid = wait(); ½â˵ÔÝÍ£³ÌÐòÖ´ÐУ¬µÈ´ý×Ó½ø³ÌÖÕÖ¹¡£ ²»ÐèÒª²ÎÊý£¬·µ»ØÖµÎª×Ó½ø³ÌID£¬Èç¹ûûÓÐ×Ó½ø³Ì£¬·µ»Ø-1¡£ Àý×Ó ½á¹ûÊä³ö º¯ÊýÃûwaitpid µ÷ÓÃÓï·¨waitpid (procid, waitflag); ½â˵ÔÝÍ£³ÌÐòÖ´ÐУ¬µÈ´ýÌØ¶¨µÄ×Ó½ø³ÌÖÕÖ¹¡£procidΪµÈ´ýµÄ½ø³ÌID Àý×Ó$procid = fork(); if ($procid == 0) { # this is the child process print ("this line is printed first\n"); exit(0); } else { # this is the parent process waitpid ($procid, 0); print ("this line is printed last\n"); } ½á¹ûÊä³ö$ program this line is printed first this line is printed last $ 4¡¢ÆäËü¿ØÖƺ¯Êý º¯ÊýÃûcaller µ÷ÓÃÓï·¨subinfo = caller(); ½â˵·µ»Øµ÷ÓÃÕߵijÌÐòÃûºÍÐкţ¬ÓÃÓÚPerl Debugger¡£ ·µ»ØÖµÎªÈýÔªËØµÄÁÐ±í£º 1¡¢µ÷Óô¦µÄ°üÃû 2¡¢µ÷ÓÃÕßÎļþÃû 3¡¢µ÷Óô¦µÄÐкŠÀý×Ó ½á¹ûÊä³ö º¯ÊýÃûchroot µ÷ÓÃÓï·¨chroot (dir); ½â˵¸Ä±ä³ÌÐòµÄ¸ùĿ¼£¬Ïê¼ûchroot°ïÖú¡£ Àý×Ó ½á¹ûÊä³ö º¯ÊýÃûlocal µ÷ÓÃÓï·¨local($variable); ½â˵ÔÚÓï¾ä¿é(ÓÉ´óÀ¨ºÅ°üΧµÄÓï¾ä¼¯ºÏ)Öж¨Òå¾ÖÓò±äÁ¿£¬½öÔÚ´ËÓï¾ä¿éÖÐÆð×÷Óã¬¶ÔÆäµÄ¸Ä±ä²»¶Ô¿éÍâͬÃû±äÁ¿Ôì³ÉÓ°Ïì¡£ ǧÍò²»ÒªÔÚÑ»·ÖÐʹÓ㬷ñÔòÿ´ÎÑ»·¶¼¶¨ÒåÒ»¸öеľÖÓò±äÁ¿£¡ Àý×Ó ½á¹ûÊä³ö º¯ÊýÃûtimes µ÷ÓÃÓï·¨timelist = times ½â˵·µ»Ø¸Ã³ÌÐò¼°ËùÓÐ×Ó½ø³ÌÏûºÄµÄ¹¤×÷ʱ¼ä¡£ ·µ»ØÖµÎªËĸö¸¡µãÊýµÄÁÐ±í£º 1¡¢³ÌÐòºÄÓõÄÓû§Ê±¼ä 2¡¢³ÌÐòºÄÓõÄϵͳʱ¼ä 3¡¢×Ó½ø³ÌºÄÓõÄÓû§Ê±¼ä 4¡¢×Ó½ø³ÌºÄÓõÄϵͳʱ¼ä Àý×Ó ½á¹ûÊä³ö ¶þ¡¢Êýѧº¯Êý º¯ÊýÃûsin µ÷ÓÃÓï·¨retval = sin (value); ½â˵²ÎÊýΪ»¡¶ÈÖµ¡£ º¯ÊýÃûcos µ÷ÓÃÓï·¨retval = cos (value); ½â˵²ÎÊýΪ»¡¶ÈÖµ¡£ º¯ÊýÃûatan2 µ÷ÓÃÓï·¨retval = atan2 (value1, value2); ½â˵ÔËËã²¢·µ»Øvalue1³ýÒÔvalue2½á¹ûµÄarctanÖµ£¬µ¥Î»Îª»¡¶È£¬·¶Î§ÔÚ-PI~PI¡£ Ó¦ÓÃÀý£º ½Ç¶Èת»¯³É»¡¶È×Ó³ÌÐò¡£sub degrees_to_radians { local ($degrees) = @_; local ($radians);11: $radians = atan2(1,1) * $degrees / 45; } º¯ÊýÃûsqrt µ÷ÓÃÓï·¨retval = sqrt (value); ½â˵ƽ·½¸ùº¯Êý¡£valueΪ·Ç¸ºÊý¡£ º¯ÊýÃûexp µ÷ÓÃÓï·¨retval = exp (value); ½â˵·µ»ØeµÄvalue´Î·½¡£ º¯ÊýÃûlog µ÷ÓÃÓï·¨retval = log (value); ½â˵ÒÔeΪµ×µÄ×ÔÈ»¶ÔÊý¡£ º¯ÊýÃûabs µ÷ÓÃÓï·¨retval = abs (value); ½â˵¾ø¶ÔÖµº¯Êý¡£(Perl 4ÖÐûÓÐ) º¯ÊýÃûrand µ÷ÓÃÓï·¨retval = rand (num); ½âËµËæ»úÊýº¯Êý£¬·µ»Ø0ºÍÕûÊýnumÖ®¼äµÄÒ»¸ö¸¡µãÊý¡£ º¯ÊýÃûsrand µ÷ÓÃÓï·¨srand (value); ½â˵³õʼ»¯Ëæ»úÊýÉú³ÉÆ÷¡£±£Ö¤Ã¿´Îµ÷ÓÃrandÕæÕýËæ»ú¡£ Èý¡¢×Ö·û´®´¦Àíº¯Êý º¯ÊýÃûindex µ÷ÓÃÓï·¨position = index (string, substring, position); ½â˵·µ»Ø×Ó´®substringÔÚ×Ö·û´®stringÖеÄλÖã¬Èç¹û²»´æÔÚÔò·µ»Ø-1¡£²ÎÊýpositionÊÇ¿ÉÑ¡Ï±íʾƥÅäÖ®Ç°Ìø¹ýµÄ×Ö·ûÊý£¬»òÕß˵´Ó¸ÃλÖÿªÊ¼Æ¥Åä¡£ º¯ÊýÃûrindex µ÷ÓÃÓï·¨position = rindex (string, substring, position); ½â˵ÓëindexÀàËÆ£¬Çø±ðÊÇ´ÓÓÒ¶ËÆ¥Åä¡£ º¯ÊýÃûlength µ÷ÓÃÓï·¨num = length (string); ½â˵·µ»Ø×Ö·û´®³¤¶È£¬»òÕß˵º¬ÓÐ×Ö·ûµÄÊýÄ¿¡£ º¯ÊýÃûpos µ÷ÓÃÓï·¨offset = pos(string); ½â˵·µ»Ø×îºóÒ»´ÎģʽƥÅäµÄλÖᣠº¯ÊýÃûsubstr µ÷ÓÃÓï·¨substr (expr, skipchars, length) ½â˵³éÈ¡×Ö·û´®£¨»ò±í´ïʽÉú³ÉµÄ×Ö·û´®£©exprÖеÄ×Ó´®£¬Ìø¹ýskipchars¸ö×Ö·û£¬»òÕß˵´ÓλÖÃskipchars¿ªÊ¼³éÈ¡×Ó´®£¨µÚÒ»¸ö×Ö·ûλÖÃΪ0£©£¬×Ó´®³¤¶ÈΪlength£¬´Ë²ÎÊý¿ÉºöÂÔ£¬Òâζ×ÅȡʣϵÄÈ«²¿×Ö·û¡£ µ±´Ëº¯Êý³öÏÖÔÚµÈʽ×ó±ßʱ£¬expr±ØÐëΪ±äÁ¿»òÊý×éÔªËØ£¬´ËʱÆäÖв¿·Ö×Ó´®±»µÈʽÓұߵÄÖµÌæ»»¡£ º¯ÊýÃûstudy µ÷ÓÃÓï·¨study (scalar); ½â˵ÓÃÒ»ÖÖÄÚ²¿¸ñʽÌá¸ß±äÁ¿µÄ·ÃÎÊËÙ¶È£¬Í¬Ò»Ê±¿ÌÖ»¶ÔÒ»¸ö±äÁ¿Æð×÷Óᣠº¯ÊýÃûlc uc µ÷ÓÃÓï·¨retval = lc(string); retval = uc(string); ½â˵½«×Ö·û´®È«²¿×ª»»³ÉС/´óд×Öĸ¡£ º¯ÊýÃûlcfirst ucfirst µ÷ÓÃÓï·¨retval = lcfirst(string); retval = ucfirst(string); ½â˵½«µÚÒ»¸ö×Öĸת»»³ÉС/´óд¡£ º¯ÊýÃûquotameta µ÷ÓÃÓï·¨newstring = quotemeta(oldstring); ½â˵½«·Çµ¥´ÊµÄ×ÖÄ¸Ç°Ãæ¼ÓÉÏ·´Ð±Ïß(\)¡£ Óï¾ä £º $string = quotemeta($string); µÈЧÓÚ£º$string =~ s/(\W)/\\$1/g; ³£ÓÃÓÚģʽƥÅä²Ù×÷ÖУ¬È·±£×Ö·û´®ÖÐûÓÐ×Ö·û±»¿´×÷Æ¥Åä²Ù×÷·û¡£ º¯ÊýÃûjoin µ÷ÓÃÓï·¨join (joinstr, list); ½â˵°Ñ×Ö·û´®Áбí(Êý×é)×éºÏ³ÉÒ»¸ö³¤µÄ×Ö·û´®£¬ÔÚÿÁ½¸öÁбíÔªËØ¼ä²åÈë´®joinstr¡£ º¯ÊýÃûsprintf µ÷ÓÃÓï·¨sprintf (string, fields); ½â˵ÓëprintfÀàËÆ£¬Çø±ðÊǽá¹û²»Êä³öµ½Îļþ£¬¶ø×÷Ϊ·µ»ØÖµ¸³¸ø±äÁ¿¡£ Àý×Ó$num = 26; $outstr = sprintf("%d = %x hexadecimal or %o octal\n",$num, $num, $num); print ($outstr); ½á¹ûÊä³ö26 = 1a hexadecimal or 32 octal ËÄ¡¢±êÁ¿×ª»»º¯Êý º¯ÊýÃûchop µ÷ÓÃÓï·¨$lastchar = chop (var); ½â˵var¿ÉΪ±äÁ¿»òÊý×飬µ±varΪ±äÁ¿Ê±£¬×îºóÒ»¸ö×Ö·û±»É¾³ý²¢¸³¸ø$lastchar£¬µ±varΪÊý×é/Áбíʱ£¬ËùÓÐÔªËØµÄ×îºóÒ»¸ö×Ö·û±»É¾³ý£¬×îºóÒ»¸öÔªËØµÄ×îºóÒ»¸ö×Öĸ¸³¸ø$lastchar¡£ º¯ÊýÃûchomp µ÷ÓÃÓï·¨result = chomp(var); ½â˵¼ì²é×Ö·û´®»ò×Ö·û´®ÁбíÖÐÔªËØµÄ×îºóÒ»¸ö×Ö·ûÊÇ·ñΪÓÉϵͳ±äÁ¿$/¶¨ÒåµÄÐзָô·û£¬Èç¹ûÊǾÍɾ³ý¡£·µ»ØÖµÎªÊµ¼Êɾ³ýµÄ×Ö·û¸öÊý¡£ º¯ÊýÃûcrypt µ÷ÓÃÓï·¨result = crypt (original, salt); ½â˵ÓÃDESËã·¨¼ÓÃÜ×Ö·û´®£¬originalÊǽ«Òª¼ÓÃܵÄ×Ö·û´®£¬saltÊÇÁ½¸ö×Ö·ûµÄ×Ö·û´®£¬¶¨ÒåÈçºÎ¸Ä±äDESËã·¨£¬ÒÔʹ¸üÄѽâÂë¡£·µ»ØÖµÎª¼ÓÃܺóµÄ´®¡£ º¯ÊýÃûhex µ÷ÓÃÓï·¨decnum = hex (hexnum); ½â˵½«Ê®Áù½øÖÆÊý(×Ö·û´®ÐÎʽ)ת»¯ÎªÊ®½øÖÆÊý¡£ º¯ÊýÃûint µ÷ÓÃÓï·¨intnum = int (floatnum); ½â˵½«¸¡µãÊýÉáȥСÊý²¿·Öת»¯ÎªÕûÐÍÊý¡£ º¯ÊýÃûoct µ÷ÓÃÓï·¨decnum = oct (octnum); ½â˵½«°Ë½øÖÆÊý(×Ö·û´®ÐÎʽ)»òÊ®Áù½øÖÆÊý("0x.."ÐÎʽ)ת»¯ÎªÊ®½øÖÆÊý¡£ º¯ÊýÃûord µ÷ÓÃÓï·¨asciival = ord (char); ½â˵·µ»Øµ¥¸ö×Ö·ûµÄASCIIÖµ£¬ÓëPASCALÖÐͬÃûº¯ÊýÀàËÆ¡£ º¯ÊýÃûchr µ÷ÓÃÓï·¨$char = chr (asciival); ½â˵·µ»ØASCIIÖµµÄÏàÓ¦×Ö·û£¬ÓëPASCALÖÐͬÃûº¯ÊýÀàËÆ¡£ º¯ÊýÃûpack µ÷ÓÃÓï·¨formatstr = pack(packformat, list); ½â˵°ÑÒ»¸öÁбí»òÊý×éÒÔÔÚʵ¼Ê»úÆ÷´æÖü¸ñʽ»òCµÈ±à³ÌÓïÑÔʹÓõĸñʽת»¯£¨°ü×°£©µ½Ò»¸ö¼òµ¥±äÁ¿ÖС£²ÎÊýpackformat°üº¬Ò»¸ö»ò¶à¸ö¸ñʽ×Ö·û£¬ÁбíÖÐÿ¸öÔªËØ¶ÔÓ¦Ò»¸ö£¬¸÷¸ñʽ×Ö·û¼ä¿ÉÓÿոñ»òtab¸ô¿ª£¬ÒòΪpackºöÂÔ¿Õ¸ñ¡£ ³ýÁ˸ñʽa¡¢AºÍ@Íâ£¬ÖØ¸´Ê¹ÓÃÒ»ÖÖ¸ñʽ¶à´Î¿ÉÔÚÆäºó¼Ó¸öÕûÊý£¬È磺 £ $twoints = pack ("i2", 103, 241); °Ñͬһ¸ñʽӦÓÃÓÚËùÓеÄÔªËØÔò¼Ó¸ö*ºÅ£¬È磺 £ $manyints = pack ("i*", 14, 26, 11, 83); ¶ÔÓÚaºÍA¶øÑÔ£¬ÆäºóµÄÕûÊý±íʾҪ´´½¨µÄ×Ö·û´®³¤¶È£¬Öظ´·½·¨ÈçÏ£º £ $strings = pack ("a6" x 2, "test1", "test2"); ¸ñʽ@µÄÇé¿ö±È½ÏÌØÊ⣬Æäºó±ØÐë¼Ó¸öÕûÊý£¬¸ÃÊý±íʾ×Ö·û´®±ØÐëµÄ³¤¶È£¬Èç¹û³¤¶È²»¹»£¬ÔòÓÿÕ×Ö·û(null)²¹×㣬È磺 £ $output = pack ("a @6 a", "test", "test2"); packº¯Êý×î³£¼ûµÄÓÃ;ÊÇ´´½¨¿ÉÓëC³ÌÐò½»»¥µÄÊý¾Ý£¬ÀýÈçCÓïÑÔÖÐ×Ö·û´®¾ùÒÔ¿Õ×Ö·û(null)½á⣬´´½¨ÕâÑùµÄÊý¾Ý¿ÉÒÔÕâÑù×ö£º £ $Cstring = pack ("ax", $mystring); ϱíÊÇһЩ¸ñʽ×Ö·ûÓëCÖÐÊý¾ÝÀàÐ͵ĵȼ۹ØÏµ£º ×Ö·û£ µÈ¼ÛCÊý¾ÝÀàÐÍ Cchar ddouble ffloat iint Iunsigned int (or unsigned) llong Lunsigned long sshort Sunsigned short ÍêÕûµÄ¸ñʽ×Ö·û¼ûÏÂ±í¡£ ¸ñʽ×Ö·û£ ÃèÊö aÓÿÕ×Ö·û(null)²¹×ãµÄ×Ö·û´® AÓÿոñ²¹×ãµÄ×Ö·û´® bλ´®£¬µÍλÔÚǰ Bλ´®£¬¸ßλÔÚǰ c´ø·ûºÅ×Ö·û£¨Í¨³£-128~127£© CÎÞ·ûºÅ×Ö·û£¨Í¨³£8룩 dË«¾«¶È¸¡µãÊý fµ¥¾«¶È¸¡µãÊý hÊ®Áù½øÖÆÊý´®£¬µÍλÔÚǰ HÊ®Áù½øÖÆÊý´®£¬¸ßλÔÚǰ i´ø·ûºÅÕûÊý IÎÞ·ûºÅÕûÊý l´ø·ûºÅ³¤ÕûÊý LÎÞ·ûºÅ³¤ÕûÊý nÍøÂçÐò¶ÌÕûÊý NÍøÂçÐò³¤ÕûÊý p×Ö·û´®Ö¸Õë s´ø·ûºÅ¶ÌÕûÊý SÎÞ·ûºÅ¶ÌÕûÊý uת»¯³Éuuencode¸ñʽ vVAXÐò¶ÌÕûÊý VVAXÐò³¤ÕûÊý xÒ»¸ö¿Õ×Ö½Ú X»ØÍËÒ»¸ö×Ö½Ú @ÒÔ¿Õ×Ö½Ú(null)Ìî³ä º¯ÊýÃûunpack µ÷ÓÃÓï·¨@list = unpack (packformat, formatstr); ½â˵unpackÓëpack¹¦ÄÜÏà·´£¬½«ÒÔ»úÆ÷¸ñʽ´æÖüµÄֵת»¯³ÉPerlÖÐÖµµÄÁÐ±í¡£Æä¸ñʽ×Ö·ûÓëpack»ù±¾Ïàͬ£¨¼´ÉÏ±í£©£¬²»Í¬µÄÓУºA¸ñʽ½«»úÆ÷¸ñʽ×Ö·û´®×ª»¯ÎªPerl×Ö·û´®²¢È¥µôβ²¿ËùÓпոñ»ò¿Õ×Ö·û£»xÎªÌø¹ýÒ»¸ö×Ö½Ú£»@ÎªÌø¹ýһЩ×Ö½Úµ½Ö¸¶¨µÄλÖã¬Èç@4ÎªÌø¹ý4¸ö×Ö½Ú¡£ÏÂÃæ¿´Ò»¸ö@ºÍXºÏͬµÄÀý×Ó£º£ £ $longrightint = unpack ("@* X4 L", $packstring); ´ËÓï¾ä½«×îºóËĸö×Ö½Ú¿´×÷ÎÞ·ûºÅ³¤ÕûÊý½øÐÐת»¯¡£ÏÂÃæ¿´Ò»¸ö¶ÔuuencodeÎļþ½âÂëµÄÀý×Ó£º 1 : #!/usr/local/bin/perl 2 : 3 : open (CODEDFILE, "/u/janedoe/codefile") || 4 : die ("Can't open input file"); 5 : open (OUTFILE, ">outfile") || 6 : die ("Can't open output file"); 7 : while ($line = 8 : $decoded = unpack("u", $line); 9 : print OUTFILE ($decoded); 10: } 11: close (OUTFILE); 12: close (CODEDFILE); µ±½«packºÍunpackÓÃÓÚuuencodeʱ£¬Òª¼Çס£¬ËäÈ»ËüÃÇÓëUNIXÖеÄuuencode¡¢uudecode¹¤¾ßËã·¨Ïàͬ£¬µ«²¢²»ÌṩÊ×ÐкÍÄ©ÐУ¬Èç¹ûÏëÓÃuudecode¶ÔÓÉpackµÄÊä³ö´´½¨µÄÎļþ½øÐнâÂ룬±ØÐëÒ²°ÑÊ×ÐкÍÄ©ÐÐÊä³ö£¨Ïê¼ûUNIXÖÐuuencode°ïÖú£©¡£ º¯ÊýÃûvec µ÷ÓÃÓï·¨retval = vec (vector, index, bits); ½â˵¹ËÃû˼Ò壬vec¼´Ê¸Á¿(vector)º¯Êý£¬Ëü°Ñ¼òµ¥±äÁ¿vectorµÄÖµ¿´×÷¶à¿é(ά)Êý¾Ý£¬Ã¿¿éº¬Ò»¶¨ÊýÄ¿µÄ룬ºÏÆðÀ´¼´Ò»¸öʸÁ¿Êý¾Ý¡£Ã¿´ÎµÄµ÷Ó÷ÃÎÊÆäÖÐÒ»¿éÊý¾Ý£¬¿ÉÒÔ¶ÁÈ¡£¬Ò²¿ÉÒÔдÈë¡£²ÎÊýindex¾ÍÏóÊý×éϱêÒ»Ñù£¬Ìá³ö·ÃÎÊÄÄÒ»¿é£¬0ΪµÚÒ»¿é£¬ÒÀ´ÎÀàÍÆ£¬Òª×¢ÒâµÄÊÇ·ÃÎÊ´ÎÐòÊÇ´ÓÓÒµ½×óµÄ£¬¼´µÚÒ»¿éÔÚ×îÓұߡ£²ÎÊýbitsÖ¸¶¨Ã¿¿éÖеÄλÊý£¬¿ÉÒÔΪ1,2,4,8,16»ò32¡£ Àý×Ó1 : #!/usr/local/bin/perl 2 : 3 : $vector = pack ("B*", "11010011"); 4 : $val1 = vec ($vector, 0, 4); 5 : $val2 = vec ($vector, 1, 4); 6 : print ("high-to-low order values: $val1 and $val2\n"); 7 : $vector = pack ("b*", "11010011"); 8 : $val1 = vec ($vector, 0, 4); 9 : $val2 = vec ($vector, 1, 4); 10: print ("low-to-high order values: $val1 and $val2\n"); ½á¹ûhigh-to-low order values: 3 and 13 low-to-high order values: 11 and 12 º¯ÊýÃûdefined µ÷ÓÃÓï·¨retval = defined (expr); ½â˵ÅжÏÒ»¸ö±äÁ¿¡¢Êý×é»òÊý×éµÄÒ»¸öÔªËØÊÇ·ñÒѾ±»¸³Öµ¡£exprΪ±äÁ¿Ãû¡¢Êý×éÃû»òÒ»¸öÊý×éÔªËØ¡£ Èç¹ûÒѶ¨Ò壬·µ»ØÕ棬·ñÔò·µ»Ø¼Ù¡£ º¯ÊýÃûundef µ÷ÓÃÓï·¨retval = undef (expr); ½â˵ȡÏû±äÁ¿¡¢Êý×é»òÊý×éÔªËØÉõÖÁ×Ó³ÌÐòµÄ¶¨Ò壬»ØÊÕÆä¿Õ¼ä¡£·µ»ØÖµÊ¼ÖÕΪ䶨ÒåÖµ£¬´ËÖµÓë¿Õ´®µÈЧ¡£ Îå¡¢Êý×éºÍÁÐ±íº¯Êý º¯ÊýÃûgrep µ÷ÓÃÓï·¨@foundlist = grep (pattern, @searchlist); ½â˵ÓëͬÃûµÄUNIX²éÕÒ¹¤¾ßÀàËÆ£¬grepº¯ÊýÔÚÁбíÖгéÈ¡ÓëÖ¸¶¨Ä£Ê½Æ¥ÅäµÄÔªËØ£¬²ÎÊýpatternΪÓû²éÕÒµÄģʽ£¬·µ»ØÖµÊÇÆ¥ÅäÔªËØµÄÁÐ±í¡£ Àý×Ó@list = ("This", "is", "a", "test"); @foundlist = grep(/^[tT]/, @list); ½á¹û@foundlist = ("This", "test"); º¯ÊýÃûsplice µ÷ÓÃÓï·¨@retval = splice (@array, slipelements, length, @newlist); ½â˵£ Æ´½Óº¯Êý¿ÉÒÔÏòÁÐ±í£¨Êý×飩Öмä²åÈëÔªËØ¡¢É¾³ý×ÓÁбí»òÌæ»»×ÓÁÐ±í¡£²ÎÊýskipelementsÊÇÆ´½ÓÇ°Ìø¹ýµÄÔªËØÊýÄ¿£¬lengthÊDZ»Ìæ»»µÄÔªËØÊý£¬newlistÊǽ«ÒªÆ´½Ó½øÀ´µÄÁÐ±í¡£µ±newlistµÄ³¤¶È´óÓÚlengthʱ£¬ºóÃæµÄÔªËØ×Ô¶¯ºóÒÆ£¬·´Ö®ÔòÏòǰËõ½ø¡£Òò´Ë£¬µ±length=0ʱ£¬¾ÍÏ൱ÓÚÏòÁбíÖвåÈëÔªËØ£¬¶øÐÎÈçÓï¾ä splice (@array, -1, 0, "Hello"); ÔòÏòÊý×éĩβÌí¼ÓÔªËØ¡£¶øµ±newlistΪ¿Õʱ¾ÍÏ൱ÓÚɾ³ý×ÓÁÐ±í£¬Õâʱ£¬Èç¹ûlengthΪ¿Õ£¬¾Í´ÓµÚskipelements¸öÔªËØºóÈ«²¿É¾³ý£¬¶øÉ¾³ý×îºóÒ»¸öÔªËØÔòΪ£ºsplice (@array, -1);ÕâÖÖÇé¿öÏ£¬·µ»ØÖµÎª±»É¾È¥µÄÔªËØÁÐ±í¡£ º¯ÊýÃûshift µ÷ÓÃÓï·¨element = shift (@arrayvar); ½â˵ɾȥÊý×éµÚÒ»¸öÔªËØ£¬Ê£ÏÂÔªËØÇ°ÒÆ£¬·µ»Ø±»É¾È¥µÄÔªËØ¡£²»¼Ó²ÎÊýʱ£¬È±Ê¡µØ¶Ô@ARGV½øÐвÙ×÷¡£ º¯ÊýÃûunshift µ÷ÓÃÓï·¨count = unshift (@arrayver, elements); ½â˵×÷ÓÃÓëshiftÏà·´£¬ÔÚÊý×éarrayvar¿ªÍ·Ôö¼ÓÒ»¸ö»ò¶à¸öÔªËØ£¬·µ»ØÖµÎª½á¹û(Áбí)µÄ³¤¶È¡£µÈ¼ÛÓÚsplice (@array, 0, 0, elements); º¯ÊýÃûpush µ÷ÓÃÓï·¨push (@arrayvar, elements); ½â˵ÔÚÊý×éĩβÔö¼ÓÒ»¸ö»ò¶à¸öÔªËØ¡£µÈ¼ÛÓÚslice (@array, @array, 0, elements); º¯ÊýÃûpop µ÷ÓÃÓï·¨element = pop (@arrayvar); ½â˵Óëpush×÷ÓÃÏà·´£¬É¾È¥Áбí×îºóÒ»¸öÔªËØ£¬²¢½«Æä×÷Ϊ·µ»ØÖµ£¬µ±ÁбíÒѿգ¬Ôò·µ»Ø¡°Î´¶¨ÒåÖµ¡±(¼´¿Õ´®)¡£ º¯ÊýÃûsplit µ÷ÓÃÓï·¨@list = split (pattern, string, maxlength); ½â˵½«×Ö·û´®·Ö¸î³ÉÒ»×éÔªËØµÄÁÐ±í¡£Ã¿Æ¥ÅäÒ»´Îpattern£¬¾Í¿ªÊ¼Ò»¸öÐÂÔªËØ£¬µ«pattern±¾Éí²»°üº¬ÔÚÔªËØÖС£maxlengthÊÇ¿ÉÑ¡Ïµ±Ö¸¶¨Ëüʱ£¬´ïµ½¸Ã³¤¶È¾Í²»Ôٷָ º¯ÊýÃûsort µ÷ÓÃÓï·¨@sorted = sort (@list); ½â˵°´×Öĸ´ÎÐò¸øÁбíÅÅÐò¡£ º¯ÊýÃûreverse µ÷ÓÃÓï·¨@reversed = reverse (@list); ½â˵°´×Öĸ·´Ðò¸øÁбíÅÅÐò¡£ º¯ÊýÃûmap µ÷ÓÃÓï·¨@resultlist = map (expr, @list); ½â˵´Ëº¯ÊýÔÚPerl5Öж¨Ò壬¿ÉÒÔ°ÑÁбíÖеĸ÷¸öÔªËØ×÷Ϊ±í´ïʽexprµÄ²Ù×÷Êý½øÐÐÔËË㣬Æä±¾Éí²»¸Ä±ä£¬½á¹û×÷Ϊ·µ»ØÖµ¡£ÔÚ±í´ïʽexprÖУ¬ÏµÍ³±äÁ¿$_´ú±í¸÷¸öÔªËØ¡£ Àý×Ó1¡¢@list = (100, 200, 300); £ @results = map ($_+1, @list); 2¡¢@results = map (&mysub($_), @list); ½á¹û1¡¢(101, 201, 301) 2¡¢ÎÞ º¯ÊýÃûwantarray µ÷ÓÃÓï·¨result = wantarray(); ½â˵PerlÖУ¬Ò»Ð©ÄÚÖú¯ÊýµÄÐÐΪ¸ù¾ÝÆä´¦Àí¼òµ¥±äÁ¿»¹ÊÇÊý×éÓÐËù²»Í¬£¬Èçchop¡£×Ô¶¨ÒåµÄ×Ó³ÌÐòÒ²¿ÉÒÔ¶¨ÒåÕâÑùÁ½ÖÖÐÐΪ¡£µ±×Ó³ÌÐò±»ÆÚÍû·µ»ØÁбíʱ£¬´Ëº¯Êý·µ»ØÖµÎª·ÇÁãÖµ(Õæ)£¬·ñÔòΪÁãÖµ(¼Ù)¡£ Àý×Ó1 : #!/usr/local/bin/perl 2 : 3 : @array = &mysub(); 4 : $scalar = &mysub(); 5 : 6 : sub mysub { 7 : if (wantarray()) { 8 : print ("true\n"); 9 : } else { 10: print ("false\n"); 11: } 12: } ½á¹û$program true false $ Áù¡¢¹ØÁªÊý×麯Êý º¯ÊýÃûkeys µ÷ÓÃÓï·¨@list = keys (%assoc_array); ½â˵·µ»Ø¹ØÁªÊý×éÎÞÐòµÄϱêÁÐ±í¡£ º¯ÊýÃûvalues µ÷ÓÃÓï·¨@list = values (%assoc_array); ½â˵·µ»Ø¹ØÁªÊý×éÎÞÐòµÄÖµÁÐ±í¡£ º¯ÊýÃûeach µ÷ÓÃÓï·¨@pair = each (%assoc_array); ½â˵·µ»ØÁ½¸öÔªËØµÄÁбí--¼üÖµ¶Ô£¨¼´Ï±êºÍÏàÓ¦µÄÖµ£©£¬Í¬ÑùÎÞÐò¡£µ±¹ØÁªÊý×éÒѿգ¬Ôò·µ»Ø¿ÕÁÐ±í¡£ º¯ÊýÃûdelete µ÷ÓÃÓï·¨element = delete (assoc_array_item); ½â˵ɾ³ý¹ØÁªÊý×éÖеÄÔªËØ£¬²¢½«ÆäÖµ×÷Ϊ·µ»ØÖµ¡£ Àý×Ó%array = ("foo", 26, "bar", 17"); $retval = delete ($array); ½á¹û$retval = 26; º¯ÊýÃûexists µ÷ÓÃÓï·¨result = exists (element); ½â˵ÔÚPerl5Öж¨Ò壬ÅжϹØÁªÊý×éÖÐÊÇ·ñ´æÔÚÄ³ÔªËØ£¬Èô´æÔÚ£¬·µ»Ø·ÇÁãÖµ(Õæ)£¬·ñÔò·µ»ØÁãÖµ(¼Ù)¡£ Àý×Ó$result = exists ($myarray); |

9Â¥2005-06-14 19:25:18













;
»Ø¸´´ËÂ¥
À´±êʶ»ù±¾ÀàºÍ¼Ì³ÐÀࣨ×ÓÀࣩ¡£
20