²é¿´: 1637  |  »Ø¸´: 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 - £ £  (2)±àÒ룺
£ £  $make makefile
£ £  (3)·ÅÖãº
£ £  ½«±àÒëÉú³ÉµÄ¿ÉÖ´ÐÐÎļþ¿½±´µ½¿ÉÖ´ÐÐÎļþͨ³£ËùÔÚĿ¼£¬È磺
£ £  $copy /usr/local/bin/perl
£ £  ×¢£ºÕâÐèҪϵͳ¹ÜÀíԱȨÏÞ¡£


±±ÃÀ
µØÖ·Ä¿Â¼
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 not found"£¬Ôò˵Ã÷ÄãûÓа²×°³É¹¦£¬ÇëÖØÐ°²×°¡£
×¢£ºÄãµÄ³ÌÐòµÄµÚÒ»ÐбØÐëΪ#!/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ÓïÑÔרÀ¸

» ²ÂÄãϲ»¶

¡¼ÓÞÓÞѧ԰¡½http://www.scifans.netÃâ·Ñ´úÀí|Ãâ·ÑÆÚ¿¯|ezproxy|ÎÄÏ×¼ìË÷|ѧÊõ×ÊÔ´|Ãâ·Ñ×ÊÔ´
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

miRNA

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©

µÚÆßÕ ¿ØÖƽṹ
Ò»¡¢Ìõ¼þÅжÏ
  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 = , $count = 1; $count <= 3;£  $line = , $count++) {
£  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ÄæÐòÖ´ÐС£
¡¼ÓÞÓÞѧ԰¡½http://www.scifans.netÃâ·Ñ´úÀí|Ãâ·ÑÆÚ¿¯|ezproxy|ÎÄÏ×¼ìË÷|ѧÊõ×ÊÔ´|Ãâ·Ñ×ÊÔ´
4Â¥2005-06-14 19:17:17
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 9 ¸ö»Ø´ð

miRNA

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©

¡ï
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 = ; # ^DΪ½áÊøÊäÈëµÄ·ûºÅ
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
(δÍê)
¡¼ÓÞÓÞѧ԰¡½http://www.scifans.netÃâ·Ñ´úÀí|Ãâ·ÑÆÚ¿¯|ezproxy|ÎÄÏ×¼ìË÷|ѧÊõ×ÊÔ´|Ãâ·Ñ×ÊÔ´
2Â¥2005-06-14 19:15:41
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

miRNA

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©

µÚÎåÕ Îļþ¶Áд
Ò»¡¢´ò¿ª¡¢¹Ø±ÕÎļþ
  Ó﷨Ϊ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 = ;´ÓÎļþÖжÁȡһÐÐÊý¾Ý´æ´¢µ½¼òµ¥±äÁ¿$lineÖв¢°ÑÎļþÖ¸ÕëÏòºóÒÆ¶¯Ò»ÐС£Îª±ê×¼ÊäÈëÎļþ£¬Í¨³£Îª¼üÅÌÊäÈ룬²»ÐèÒª´ò¿ª¡£
  Óï¾ä@array = ;°ÑÎļþµÄÈ«²¿ÄÚÈݶÁÈëÊý×é@array£¬ÎļþµÄÿһÐÐ(º¬»Ø³µ·û)Ϊ@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ģʽƥÅä²Ù×÷ËùûÓеÄһЩģʽƥÅäÄÜÁ¦¡£ÆäÓ﷨Ϊ£º(?pattern)£¬ÆäÖÐcÊÇÒ»¸ö×Ö·û£¬patternÊÇÆð×÷ÓõÄģʽ»ò×Óģʽ¡£
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)/ {
£ £ £ ...
£ £ }
¡¼ÓÞÓÞѧ԰¡½http://www.scifans.netÃâ·Ñ´úÀí|Ãâ·ÑÆÚ¿¯|ezproxy|ÎÄÏ×¼ìË÷|ѧÊõ×ÊÔ´|Ãâ·Ñ×ÊÔ´
3Â¥2005-06-14 19:16:56
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

miRNA

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

Ë®ÍõÖ®Íõ£¨ÓÞÓÞѧ԰¹ÜÀíÔ±£©

¡ï ¡ï
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¸ö¿Õ¸ñ¡£
¡¼ÓÞÓÞѧ԰¡½http://www.scifans.netÃâ·Ñ´úÀí|Ãâ·ÑÆÚ¿¯|ezproxy|ÎÄÏ×¼ìË÷|ѧÊõ×ÊÔ´|Ãâ·Ñ×ÊÔ´
5Â¥2005-06-14 19:17:42
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 268Çóµ÷¼Á +7 ºÃÔËÁ¬Ã಻¾ø 2026-03-12 8/400 2026-03-17 20:28 by xilongliang
[¿¼ÑÐ] Ò»Ö¾Ô¸ËÕÖÝ´óѧ²ÄÁϹ¤³Ì£¨085601£©×¨Ë¶ÓпÆÑо­ÀúÈýÏî¹ú½±Á½¸öʵÓÃÐÍרÀûÒ»ÏîÊ¡¼¶Á¢Ïî +6 ´ó»ðɽС»ðɽ 2026-03-16 8/400 2026-03-17 15:05 by ÎÞи¿É»÷111
[¿¼ÑÐ] 278Çóµ÷¼Á +3 Yy7400 2026-03-13 3/150 2026-03-17 08:24 by laoshidan
[»ù½ðÉêÇë] ¹ú×Ô¿ÆÃæÉÏ»ù½ð×ÖÌå +6 iwuli 2026-03-12 7/350 2026-03-16 21:18 by sculhf
[¿¼ÑÐ] »úеר˶325£¬Ñ°ÕÒµ÷¼ÁԺУ +3 y9999 2026-03-15 5/250 2026-03-16 19:58 by y9999
[¿¼ÑÐ] »·¾³¹¤³Ìµ÷¼Á +6 ´ó¿Édigkids 2026-03-16 6/300 2026-03-16 17:16 by barlinike
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤ 323 Ó¢Ò»+Êý¶þ+Îﻯ£¬Ò»Ö¾Ô¸£º¹þ¹¤´ó ±¾È˱¾¿ÆË«Ò»Á÷ +4 ×ÔÓɵÄ_·ÉÏè 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
[¿¼ÑÐ] 289Çóµ÷¼Á +4 ÕâôÃû×ÖÕ¦Ñù 2026-03-14 6/300 2026-03-14 18:58 by userper
[¿¼ÑÐ] 255Çóµ÷¼Á +3 Àî¼Î»Û£¬ 2026-03-12 4/200 2026-03-14 16:58 by ÓÐÖ»ÀêÅ«
[¿¼ÑÐ] 328Çóµ÷¼Á +3 5201314Lsy£¡ 2026-03-13 6/300 2026-03-14 15:31 by hyswxzs
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤£¨0856£©304ÇóBÇøµ÷¼Á +6 Çñgl 2026-03-12 7/350 2026-03-13 23:24 by Çñgl
[¿¼ÑÐ] 279Çóµ÷¼Á +3 Dizzy123@ 2026-03-10 3/150 2026-03-13 23:02 by JourneyLucky
[¿¼ÑÐ] £Û0860£Ý321·ÖÇóµ÷¼Á£¬abÇø½Ô¿É +4 ±¦¹óÈÈ 2026-03-13 4/200 2026-03-13 22:01 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] ËÄ´¨´óѧ085601²ÄÁϹ¤³Ìר˶ ³õÊÔ294Çóµ÷¼Á +4 ×£ÎÒÃǺÃÔÚ¶¬Ìì 2026-03-11 4/200 2026-03-13 21:39 by peike
[¿¼ÑÐ] £¨081700£©»¯Ñ§¹¤³ÌÓë¼¼Êõ-298·ÖÇóµ÷¼Á +12 11À²À²À² 2026-03-11 35/1750 2026-03-13 21:25 by JourneyLucky
[¿¼ÑÐ] Çóµ÷¼Á +5 Ò»¶¨ÓÐѧÉÏ- 2026-03-12 5/250 2026-03-13 18:31 by ms629
[¿¼ÑÐ] ²ÄÁÏר˶350 Çóµ÷¼Á +4 Íõ½ð¿Æ 2026-03-12 4/200 2026-03-13 16:02 by ruiyingmiao
[¿¼ÑÐ] 070303Ò»Ö¾Ô¸Î÷±±´óѧѧ˶310ÕÒµ÷¼Á +3 dÈçÔ¸Éϰ¶ 2026-03-13 3/150 2026-03-13 10:43 by houyaoxu
[¿¼²©] 2026Ä격ʿÉêÇë +3 QwQwQW10 2026-03-11 3/150 2026-03-12 17:58 by gxch43
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û