| ²é¿´: 1691 | »Ø¸´: 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ÓïÑÔרÀ¸ |
» ²ÂÄãϲ»¶
366Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
²ÄÁϹ¤³Ì085601£¬270Çóµ÷¼Á
ÒѾÓÐ37È˻ظ´
279ѧ˶ʳƷרҵÇóµ÷¼ÁԺУ
ÒѾÓÐ18È˻ظ´
290µ÷¼ÁÉúÎï0860
ÒѾÓÐ31È˻ظ´
Ò»Ö¾Ô¸085802 323·ÖÇóµ÷¼Á
ÒѾÓÐ13È˻ظ´
277Çóµ÷¼Á
ÒѾÓÐ23È˻ظ´
322Çóµ÷¼Á£¬08¹¤¿Æ
ÒѾÓÐ4È˻ظ´
²ÄÁϹ¤³Ì281»¹Óе÷¼Á»ú»áÂð
ÒѾÓÐ30È˻ظ´
»¯Ñ§070300 Çóµ÷¼Á
ÒѾÓÐ16È˻ظ´
»¯¹¤Ñ§Ë¶294·Ö£¬Çóµ¼Ê¦ÊÕÁô
ÒѾÓÐ12È˻ظ´

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
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













;
»Ø¸´´ËÂ¥
5