Address: http://man.chinacode.com/perl/perl8.htm
Title: PerlÖÐÎÄÊÖ²á  •  Size: 8060  •  Last Modified: Sun, 11 Jun 2006 06:54:10 GMT
¡¡

Perl 5½Ì³Ì
by chinacode

Ŀ¼

µÚÒ»²¿·Ö PerlÓïÑÔ

µÚÒ»Õ ¸ÅÊö

µÚ¶þÕ ¼òµ¥±äÁ¿

µÚÈýÕÂ ²Ù×÷·û

µÚËÄÕ ÁбíºÍÊý×é±äÁ¿

µÚÎåÕ Îļþ¶Áд

µÚÁùÕ ģʽƥÅä

µÚÆßÕ ¿ØÖƽṹ

µÚ°ËÕ ×Ó³ÌÐò

µÚ¾ÅÕ ¹ØÁªÊý×é(¹þÏ£±í)

µÚʮՠ¸ñʽ»¯Êä³ö

µÚʮһÕ Îļþϵͳ

µÚÊ®¶þÕÂ ÒýÓÃ(Ö¸Õë)

µÚÊ®ÈýÕÂ ÃæÏò¶ÔÏó±à³Ì

µÚÊ®ËÄÕ °üºÍÄ£¿é

¸½Â¼Ò» º¯Êý¼¯

µÚ¶þ²¿·Ö PerlµÄCGIÓ¦ÓÃ

µÚÒ»ÕÂ cgilibÀý

µÚ¶þÕ ¶¯Ì¬´´½¨Í¼Ïñ

µÚÈýÕ ¼ÆÊýÆ÷µÄ±àд·½·¨

µÚËÄÕÂ Web ServerÉèÖÃ

µÚÎåÕ¡¢...
¡¡

µÚ°ËÕ ×Ó³ÌÐò

by chinacode


Ò»¡¢¶¨Òå
¶þ¡¢µ÷ÓÃ
   1¡¢ÓÃ&µ÷ÓÃ
   2¡¢Ïȶ¨Òåºóµ÷ÓÃ
   3¡¢Ç°ÏòÒýÓÃ
   4¡¢ÓÃdoµ÷ÓÃ
Èý¡¢·µ»ØÖµ
ËÄ¡¢¾Ö²¿±äÁ¿
Îå¡¢×Ó³ÌÐò²ÎÊý´«µÝ
   1¡¢ÐÎʽ
   2¡¢´«ËÍÊý×é
Áù¡¢µÝ¹é×Ó³ÌÐò
Æß¡¢ÓñðÃû´«µÝÊý×é²ÎÊý
°Ë¡¢Ô¤¶¨ÒåµÄ×Ó³ÌÐò


Ò»¡¢¶¨Òå
  ×Ó³ÌÐò¼´Ö´ÐÐÒ»¸öÌØÊâÈÎÎñµÄÒ»¶Î·ÖÀëµÄ´úÂ룬Ëü¿ÉÒÔʹ¼õÉÙÖØ¸´´úÂëÇÒʹ³ÌÐòÒ×¶Á¡£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ÄæÐòÖ´ÐС£


ÉÏÒ»Õ ÏÂÒ»Õ Ŀ¼