{"id":265,"date":"2012-09-17T12:40:22","date_gmt":"2012-09-17T04:40:22","guid":{"rendered":"http:\/\/www.hzaumycology.com\/chenlianfu_blog\/?p=265"},"modified":"2012-09-17T14:04:31","modified_gmt":"2012-09-17T06:04:31","slug":"perl%e5%87%bd%e6%95%b0%e9%9b%86","status":"publish","type":"post","link":"http:\/\/www.chenlianfu.com\/?p=265","title":{"rendered":"Perl\u51fd\u6570\u96c6\uff08\u8f6c\uff09"},"content":{"rendered":"<h1>\u4e00\u3001\u8fdb\u7a0b\u5904\u7406\u51fd\u6570<\/h1>\n<h2>1\u3001\u8fdb\u7a0b\u542f\u52a8\u51fd\u6570<\/h2>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d eval<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 eval(string)\r\n\r\n\u89e3\u8bf4 \u5c06string\u770b\u4f5cPerl\u8bed\u53e5\u6267\u884c\u3002\r\n\r\n\u6b63\u786e\u6267\u884c\u540e\uff0c\u7cfb\u7edf\u53d8\u91cf$@\u4e3a\u7a7a\u4e32\uff0c\u5982\u679c\u6709\u9519\u8bef\uff0c$@\u4e2d\u4e3a\u9519\u8bef\u4fe1\u606f\u3002\r\n\r\n\u4f8b\u5b50 $print = \"print (\\\"hello,world\\\\n\\\");\";\r\n\r\neval ($print);\r\n\r\n\u7ed3\u679c\u8f93\u51fa hello, world<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d system<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 system(list)\r\n\r\n\u89e3\u8bf4 list\u4e2d\u7b2c\u4e00\u4e2a\u5143\u7d20\u4e3a\u7a0b\u5e8f\u540d\uff0c\u5176\u4f59\u4e3a\u53c2\u6570\u3002\r\n\r\nsystem\u542f\u52a8\u4e00\u4e2a\u8fdb\u7a0b\u8fd0\u884c\u7a0b\u5e8f\u5e76\u7b49\u5f85\u5176\u7ed3\u675f\uff0c\u7a0b\u5e8f\u7ed3\u675f\u540e\u9519\u8bef\u4ee3\u7801\u5de6\u79fb\u516b\u4f4d\u6210\u4e3a\u8fd4\u56de\u503c\u3002\r\n\r\n\u4f8b\u5b50 @proglist = (\"echo\", \"hello,world!\");\r\n\r\nsystem(@proglist);\r\n\r\n\u7ed3\u679c\u8f93\u51fa hello, world!<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d fork<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 procid = fork();\r\n\r\n\u89e3\u8bf4 \u521b\u5efa\u7a0b\u5e8f\u7684\u4e24\u4e2a\u62f7\u8d1d--\u7236\u8fdb\u7a0b\u548c\u5b50\u8fdb\u7a0b--\u540c\u65f6\u8fd0\u884c\u3002\u5b50\u8fdb\u7a0b\u8fd4\u56de\u96f6\uff0c\u7236\u8fdb\u7a0b\u8fd4\u56de\u975e\u96f6\r\n\u503c\uff0c\u6b64\u503c\u4e3a\u5b50\u7a0b\u5e8f\u7684\u8fdb\u7a0bID\u53f7\u3002\r\n\r\n\u4f8b\u5b50 $retval = fork();\r\n\r\nif ($retval == 0) {\r\n\r\n# this is the child process\r\n\r\nexit; # this terminates the child process\r\n\r\n} else {\r\n\r\n# this is the parent process\r\n\r\n}\r\n\r\n\u7ed3\u679c\u8f93\u51fa \u65e0<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d pipe<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 pipe (infile, outfile);\r\n\r\n\u89e3\u8bf4 \u4e0efork\u5408\u7528\uff0c\u7ed9\u7236\u8fdb\u7a0b\u548c\u5b50\u8fdb\u7a0b\u63d0\u4f9b\u901a\u4fe1\u7684\u65b9\u5f0f\u3002\u9001\u5230outfile\u6587\u4ef6\u53d8\u91cf\u7684\u4fe1\u606f\u53ef\u4ee5\r\n\u901a\u8fc7infile\u6587\u4ef6\u53d8\u91cf\u8bfb\u53d6\u3002\u6b65\u9aa4\uff1a\r\n\r\n1\u3001\u8c03\u7528pipe\r\n\r\n2\u3001\u7528fork\u5c06\u7a0b\u5e8f\u5206\u6210\u7236\u8fdb\u7a0b\u548c\u5b50\u8fdb\u7a0b\r\n\r\n3\u3001\u4e00\u4e2a\u8fdb\u7a0b\u5173\u6389infile\uff0c\u53e6\u4e00\u4e2a\u5173\u6389outfile\r\n\r\n\u4f8b\u5b50 pipe (INPUT, OUTPUT);\r\n\r\n$retval = fork();\r\n\r\nif ($retval != 0) {\r\n\r\n# this is the parent process\r\n\r\nclose (INPUT);\r\n\r\nprint (\"Enter a line of input:\\n\");\r\n\r\n$line = &lt;STDIN&gt;;\r\n\r\nprint OUTPUT ($line);\r\n\r\n} else {\r\n\r\n# this is the child process\r\n\r\nclose (OUTPUT);\r\n\r\n$line = &lt;INPUT&gt;;\r\n\r\nprint ($line);\r\n\r\nexit (0);\r\n\r\n}\r\n\r\n\u7ed3\u679c\u8f93\u51fa $\r\n\r\nprogram\r\n\r\nEnter a line of input:\r\n\r\nHere is a test line\r\n\r\nHere is a test line\r\n\r\n$<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d exec<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 exec (list);\r\n\r\n\u89e3\u8bf4 \u4e0esystem\u7c7b\u4f3c\uff0c\u533a\u522b\u662f\u542f\u52a8\u65b0\u8fdb\u7a0b\u524d\u7ed3\u675f\u5f53\u524d\u7a0b\u5e8f\u3002\u5e38\u4e0efork\u5408\u7528\uff0c\u5f53fork\u5206\u6210\u4e24\u4e2a\r\n\u8fdb\u7a0b\u540e\uff0c\u5b50\u8fdb\u7a0b\u7528exec\u542f\u52a8\u53e6\u4e00\u4e2a\u7a0b\u5e8f\u3002\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d syscall<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 syscall (list);\r\n\r\n\u89e3\u8bf4 \u8c03\u7528\u7cfb\u7edf\u51fd\u6570\uff0clist\u7b2c\u4e00\u4e2a\u5143\u7d20\u662f\u7cfb\u7edf\u8c03\u7528\u540d\uff0c\u5176\u4f59\u4e3a\u53c2\u6570\u3002\r\n\r\n\u5982\u679c\u53c2\u6570\u662f\u6570\u5b57\uff0c\u5c31\u8f6c\u5316\u6210C\u7684\u6574\u578b\u6570(type int)\u3002\u5426\u5219\u4f20\u9012\u5b57\u7b26\u4e32\u7684\u6307\u9488\u3002\u8be6\u89c1UNIX\u7684\u5e2e\u52a9Perl\u6587\u6863\u3002\r\n\r\n\u4f7f\u7528syscall\u5fc5\u987b\u5305\u542b\u6587\u4ef6syscall.pl\uff0c\u5373\uff1a\r\n\r\nrequire (\"syscall.ph\");\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<h2>2\u3001\u8fdb\u7a0b\u7ec8\u6b62\u51fd\u6570<\/h2>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d die<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 die (message);\r\n\r\n\u89e3\u8bf4 \u7ec8\u6b62\u7a0b\u5e8f\u5e76\u5411STDERR\u8f93\u51fa\u9519\u8bef\u4fe1\u606f\u3002message\u53ef\u4ee5\u4e3a\u5b57\u7b26\u4e32\u6216\u5217\u8868\u3002\u5982\u679c\u6700\u540e\u4e00\u4e2a\u53c2\r\n\u6570\u4e0d\u5305\u542b\u6362\u884c\u7b26\uff0c\u5219\u7a0b\u5e8f\u6587\u4ef6\u540d\u548c\u884c\u53f7\u4e5f\u88ab\u8f93\u51fa\u3002\r\n\r\n\u4f8b\u5b50 die (\"Cannot open input file\");\r\n\r\n\u7ed3\u679c\u8f93\u51fa Cannot open input file at myprog line 6.<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d warn<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 warn (message);\r\n\r\n\u89e3\u8bf4 \u4e0edie\u7c7b\u4f3c\uff0c\u533a\u522b\u662f\u4e0d\u7ec8\u6b62\u7a0b\u5e8f\u3002\r\n\r\n\u4f8b\u5b50 warn(\"Danger! Danger!\\n\");\r\n\r\n\u7ed3\u679c\u8f93\u51fa Danger! Danger!<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d exit<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 exit (retcode);\r\n\r\n\u89e3\u8bf4 \u7ec8\u6b62\u7a0b\u5e8f\u5e76\u6307\u5b9a\u8fd4\u56de\u503c\u3002\r\n\r\n\u4f8b\u5b50 \r\n\r\nexit(2);\r\n\r\n\u7ed3\u679c\u8f93\u51fa \u65e0<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d kill<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 kill (signal, proclist);\r\n\r\n\u89e3\u8bf4 \u7ed9\u4e00\u7ec4\u8fdb\u7a0b\u53d1\u9001\u4fe1\u53f7\u3002\r\n\r\nsignal\u662f\u53d1\u9001\u7684\u6570\u5b57\u4fe1\u53f7\uff0c9\u4e3a\u6740\u6389\u8fdb\u7a0b\u3002\r\n\r\nproclist\u662f\u8fdb\u7a0bID\u5217\u8868\u3002\u8be6\u89c1kill\u7684UNIX\u5e2e\u52a9\u3002\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<h2>3\u3001\u8fdb\u7a0b\u63a7\u5236\u51fd\u6570<\/h2>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d sleep<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 sleep (time);\r\n\r\n\u89e3\u8bf4 \u5c06\u7a0b\u5e8f\u6682\u505c\u4e00\u6bb5\u65f6\u95f4\u3002time\u662f\u505c\u6b62\u7684\u79d2\u6570\u3002\u8fd4\u56de\u503c\u4e3a\u5b9e\u9645\u505c\u6b62\u7684\u79d2\u6570\u3002\r\n\r\n\u4f8b\u5b50 sleep (5);\r\n\r\n\u7ed3\u679c\u8f93\u51fa \u65e0<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d wait<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 procid = wait();\r\n\r\n\u89e3\u8bf4 \u6682\u505c\u7a0b\u5e8f\u6267\u884c\uff0c\u7b49\u5f85\u5b50\u8fdb\u7a0b\u7ec8\u6b62\u3002\r\n\r\n\u4e0d\u9700\u8981\u53c2\u6570\uff0c\u8fd4\u56de\u503c\u4e3a\u5b50\u8fdb\u7a0bID\uff0c\u5982\u679c\u6ca1\u6709\u5b50\u8fdb\u7a0b\uff0c\u8fd4\u56de-1\u3002\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d waitpid<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 waitpid (procid, waitflag);\r\n\r\n\u89e3\u8bf4 \u6682\u505c\u7a0b\u5e8f\u6267\u884c\uff0c\u7b49\u5f85\u7279\u5b9a\u7684\u5b50\u8fdb\u7a0b\u7ec8\u6b62\u3002procid\u4e3a\u7b49\u5f85\u7684\u8fdb\u7a0bID\r\n\r\n\u4f8b\u5b50 $procid = fork();\r\n\r\nif ($procid == 0) {\r\n\r\n# this is the child process\r\n\r\nprint (\"this line is printed first\\n\");\r\n\r\nexit(0);\r\n\r\n} else {\r\n\r\n# this is the parent process\r\n\r\nwaitpid ($procid, 0);\r\n\r\nprint (\"this line is printed last\\n\");\r\n\r\n}\r\n\r\n\u7ed3\u679c\u8f93\u51fa $ program\r\n\r\nthis line is printed first\r\n\r\nthis line is printed last\r\n\r\n$<\/pre>\n<h2>4\u3001\u5176\u5b83\u63a7\u5236\u51fd\u6570<\/h2>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d caller<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 subinfo = caller();\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u8c03\u7528\u8005\u7684\u7a0b\u5e8f\u540d\u548c\u884c\u53f7\uff0c\u7528\u4e8ePerl Debugger\u3002\r\n\r\n\u8fd4\u56de\u503c\u4e3a\u4e09\u5143\u7d20\u7684\u5217\u8868\uff1a\r\n\r\n1\u3001\u8c03\u7528\u5904\u7684\u5305\u540d\r\n\r\n2\u3001\u8c03\u7528\u8005\u6587\u4ef6\u540d\r\n\r\n3\u3001\u8c03\u7528\u5904\u7684\u884c\u53f7\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d chroot<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 chroot (dir);\r\n\r\n\u89e3\u8bf4 \u6539\u53d8\u7a0b\u5e8f\u7684\u6839\u76ee\u5f55\uff0c\u8be6\u89c1chroot\u5e2e\u52a9\u3002\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d local<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 local($variable);\r\n\u89e3\u8bf4 \u5728\u8bed\u53e5\u5757(\u7531\u5927\u62ec\u53f7\u5305\u56f4\u7684\u8bed\u53e5\u96c6\u5408)\u4e2d\u5b9a\u4e49\u5c40\u57df\u53d8\u91cf\uff0c\u4ec5\u5728\u6b64\u8bed\u53e5\u5757\u4e2d\u8d77\u4f5c\u7528\uff0c\u5bf9\u5176\r\n\u7684\u6539\u53d8\u4e0d\u5bf9\u5757\u5916\u540c\u540d\u53d8\u91cf\u9020\u6210\u5f71\u54cd\u3002\r\n\r\n\u5343\u4e07\u4e0d\u8981\u5728\u5faa\u73af\u4e2d\u4f7f\u7528\uff0c\u5426\u5219\u6bcf\u6b21\u5faa\u73af\u90fd\u5b9a\u4e49\u4e00\u4e2a\u65b0\u7684\u5c40\u57df\u53d8\u91cf\uff01\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d times<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 timelist = times\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u8be5\u7a0b\u5e8f\u53ca\u6240\u6709\u5b50\u8fdb\u7a0b\u6d88\u8017\u7684\u5de5\u4f5c\u65f6\u95f4\u3002\r\n\r\n\u8fd4\u56de\u503c\u4e3a\u56db\u4e2a\u6d6e\u70b9\u6570\u7684\u5217\u8868\uff1a\r\n\r\n1\u3001\u7a0b\u5e8f\u8017\u7528\u7684\u7528\u6237\u65f6\u95f4\r\n\r\n2\u3001\u7a0b\u5e8f\u8017\u7528\u7684\u7cfb\u7edf\u65f6\u95f4\r\n\r\n3\u3001\u5b50\u8fdb\u7a0b\u8017\u7528\u7684\u7528\u6237\u65f6\u95f4\r\n\r\n4\u3001\u5b50\u8fdb\u7a0b\u8017\u7528\u7684\u7cfb\u7edf\u65f6\u95f4\r\n\r\n\u4f8b\u5b50\r\n\r\n\u7ed3\u679c\u8f93\u51fa<\/pre>\n<h1>\u4e8c\u3001\u6570\u5b66\u51fd\u6570<\/h1>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d sin<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = sin (value);\r\n\r\n\u89e3\u8bf4 \u53c2\u6570\u4e3a\u5f27\u5ea6\u503c\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d cos<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = cos (value);\r\n\r\n\u89e3\u8bf4 \u53c2\u6570\u4e3a\u5f27\u5ea6\u503c\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d atan2<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = atan2 (value1, value2);\r\n\r\n\u89e3\u8bf4 \u8fd0\u7b97\u5e76\u8fd4\u56devalue1\u9664\u4ee5value2\u7ed3\u679c\u7684arctan\u503c\uff0c\u5355\u4f4d\u4e3a\u5f27\u5ea6\uff0c\u8303\u56f4\u5728-PI~PI\u3002\r\n\r\n\u5e94\u7528\u4f8b\uff1a\r\n\r\n\u89d2\u5ea6\u8f6c\u5316\u6210\u5f27\u5ea6\u5b50\u7a0b\u5e8f\u3002 sub degrees_to_radians {\r\n\r\nlocal ($degrees) = @_;\r\n\r\nlocal ($radians);11:\r\n\r\n$radians = atan2(1,1) * $degrees \/ 45;\r\n\r\n}<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d sqrt<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = sqrt (value);\r\n\r\n\u89e3\u8bf4 \u5e73\u65b9\u6839\u51fd\u6570\u3002value\u4e3a\u975e\u8d1f\u6570\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d exp<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = exp (value);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56dee\u7684value\u6b21\u65b9\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d log<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = log (value);\r\n\r\n\u89e3\u8bf4 \u4ee5e\u4e3a\u5e95\u7684\u81ea\u7136\u5bf9\u6570\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d abs<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = abs (value);\r\n\r\n\u89e3\u8bf4 \u7edd\u5bf9\u503c\u51fd\u6570\u3002(Perl 4\u4e2d\u6ca1\u6709)<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d rand<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = rand (num);\r\n\r\n\u89e3\u8bf4 \u968f\u673a\u6570\u51fd\u6570\uff0c\u8fd4\u56de0\u548c\u6574\u6570num\u4e4b\u95f4\u7684\u4e00\u4e2a\u6d6e\u70b9\u6570\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d srand<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 srand (value);\r\n\r\n\u89e3\u8bf4 \u521d\u59cb\u5316\u968f\u673a\u6570\u751f\u6210\u5668\u3002\u4fdd\u8bc1\u6bcf\u6b21\u8c03\u7528rand\u771f\u6b63\u968f\u673a\u3002<\/pre>\n<h1>\u4e09\u3001\u5b57\u7b26\u4e32\u5904\u7406\u51fd\u6570<\/h1>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d index<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 position = index (string, substring, position);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u5b50\u4e32substring\u5728\u5b57\u7b26\u4e32string\u4e2d\u7684\u4f4d\u7f6e\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5219\u8fd4\u56de-1\u3002\u53c2\u6570position\r\n\u662f\u53ef\u9009\u9879\uff0c\u8868\u793a\u5339\u914d\u4e4b\u524d\u8df3\u8fc7\u7684\u5b57\u7b26\u6570\uff0c\u6216\u8005\u8bf4\u4ece\u8be5\u4f4d\u7f6e\u5f00\u59cb\u5339\u914d\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d rindex<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 position = rindex (string, substring, position);\r\n\r\n\u89e3\u8bf4 \u4e0eindex\u7c7b\u4f3c\uff0c\u533a\u522b\u662f\u4ece\u53f3\u7aef\u5339\u914d\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d length<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 num = length (string);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u5b57\u7b26\u4e32\u957f\u5ea6\uff0c\u6216\u8005\u8bf4\u542b\u6709\u5b57\u7b26\u7684\u6570\u76ee\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d pos<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 offset = pos(string);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u6700\u540e\u4e00\u6b21\u6a21\u5f0f\u5339\u914d\u7684\u4f4d\u7f6e\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d substr<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 substr (expr, skipchars, length)\r\n\r\n\u89e3\u8bf4 \u62bd\u53d6\u5b57\u7b26\u4e32\uff08\u6216\u8868\u8fbe\u5f0f\u751f\u6210\u7684\u5b57\u7b26\u4e32\uff09expr\u4e2d\u7684\u5b50\u4e32\uff0c\u8df3\u8fc7skipchars\u4e2a\u5b57\u7b26\uff0c\u6216\u8005\r\n\u8bf4\u4ece\u4f4d\u7f6eskipchars\u5f00\u59cb\u62bd\u53d6\u5b50\u4e32\uff08\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4f4d\u7f6e\u4e3a0\uff09\uff0c\u5b50\u4e32\u957f\u5ea6\u4e3alength\uff0c\u6b64\u53c2\u6570\u53ef\r\n\u5ffd\u7565\uff0c\u610f\u5473\u7740\u53d6\u5269\u4e0b\u7684\u5168\u90e8\u5b57\u7b26\u3002\r\n\r\n\u5f53\u6b64\u51fd\u6570\u51fa\u73b0\u5728\u7b49\u5f0f\u5de6\u8fb9\u65f6\uff0cexpr\u5fc5\u987b\u4e3a\u53d8\u91cf\u6216\u6570\u7ec4\u5143\u7d20\uff0c\u6b64\u65f6\u5176\u4e2d\u90e8\u5206\u5b50\u4e32\u88ab\u7b49\u5f0f\u53f3\u8fb9\r\n\u7684\u503c\u66ff\u6362\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d study<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 study (scalar);\r\n\r\n\u89e3\u8bf4 \u7528\u4e00\u79cd\u5185\u90e8\u683c\u5f0f\u63d0\u9ad8\u53d8\u91cf\u7684\u8bbf\u95ee\u901f\u5ea6\uff0c\u540c\u4e00\u65f6\u523b\u53ea\u5bf9\u4e00\u4e2a\u53d8\u91cf\u8d77\u4f5c\u7528\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d lc\/uc <\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = lc(string);\r\n\r\nretval = uc(string);\r\n\r\n\u89e3\u8bf4 \u5c06\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u6362\u6210\u5c0f\/\u5927\u5199\u5b57\u6bcd\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d lcfirst\/ucfirst <\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = lcfirst(string);\r\n\r\nretval = ucfirst(string);\r\n\r\n\u89e3\u8bf4 \u5c06\u7b2c\u4e00\u4e2a\u5b57\u6bcd\u8f6c\u6362\u6210\u5c0f\/\u5927\u5199\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d quotameta<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 newstring = quotemeta(oldstring);\r\n\r\n\u89e3\u8bf4 \u5c06\u975e\u5355\u8bcd\u7684\u5b57\u6bcd\u524d\u9762\u52a0\u4e0a\u53cd\u659c\u7ebf(\\)\u3002\r\n\r\n\u8bed\u53e5 \uff1a $string = quotemeta($string);\r\n\r\n\u7b49\u6548\u4e8e\uff1a$string =~ s\/(\\W)\/\\\\$1\/g;\r\n\r\n\u5e38\u7528\u4e8e\u6a21\u5f0f\u5339\u914d\u64cd\u4f5c\u4e2d\uff0c\u786e\u4fdd\u5b57\u7b26\u4e32\u4e2d\u6ca1\u6709\u5b57\u7b26\u88ab\u770b\u4f5c\u5339\u914d\u64cd\u4f5c\u7b26\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d join<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 join (joinstr, list);\r\n\r\n\u89e3\u8bf4 \u628a\u5b57\u7b26\u4e32\u5217\u8868(\u6570\u7ec4)\u7ec4\u5408\u6210\u4e00\u4e2a\u957f\u7684\u5b57\u7b26\u4e32\uff0c\u5728\u6bcf\u4e24\u4e2a\u5217\u8868\u5143\u7d20\u95f4\u63d2\u5165\u4e32joinstr\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d sprintf<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 sprintf (string, fields);\r\n\r\n\u89e3\u8bf4 \u4e0eprintf\u7c7b\u4f3c\uff0c\u533a\u522b\u662f\u7ed3\u679c\u4e0d\u8f93\u51fa\u5230\u6587\u4ef6\uff0c\u800c\u4f5c\u4e3a\u8fd4\u56de\u503c\u8d4b\u7ed9\u53d8\u91cf\u3002\r\n\r\n\u4f8b\u5b50 $num = 26;\r\n\r\n$outstr = sprintf(\"%d = %x hexadecimal or %o octal\\n\",$num, $num, $num);\r\n\r\nprint ($outstr);\r\n\r\n\u7ed3\u679c\u8f93\u51fa 26 = 1a hexadecimal or 32 octal<\/pre>\n<h1>\u56db\u3001\u6807\u91cf\u8f6c\u6362\u51fd\u6570<\/h1>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d chop<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 $lastchar = chop (var);\r\n\r\n\u89e3\u8bf4 var\u53ef\u4e3a\u53d8\u91cf\u6216\u6570\u7ec4\uff0c\u5f53var\u4e3a\u53d8\u91cf\u65f6\uff0c\u6700\u540e\u4e00\u4e2a\u5b57\u7b26\u88ab\u5220\u9664\u5e76\u8d4b\u7ed9$lastchar\uff0c\u5f53va\r\nr\u4e3a\u6570\u7ec4\/\u5217\u8868\u65f6\uff0c\u6240\u6709\u5143\u7d20\u7684\u6700\u540e\u4e00\u4e2a\u5b57\u7b26\u88ab\u5220\u9664\uff0c\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u7684\u6700\u540e\u4e00\u4e2a\u5b57\u6bcd\u8d4b\u7ed9$l\r\nastchar\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d chomp<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 result = chomp(var);\r\n\r\n\u89e3\u8bf4 \u68c0\u67e5\u5b57\u7b26\u4e32\u6216\u5b57\u7b26\u4e32\u5217\u8868\u4e2d\u5143\u7d20\u7684\u6700\u540e\u4e00\u4e2a\u5b57\u7b26\u662f\u5426\u4e3a\u7531\u7cfb\u7edf\u53d8\u91cf$\/\u5b9a\u4e49\u7684\u884c\u5206\u9694\u7b26\r\n\uff0c\u5982\u679c\u662f\u5c31\u5220\u9664\u3002\u8fd4\u56de\u503c\u4e3a\u5b9e\u9645\u5220\u9664\u7684\u5b57\u7b26\u4e2a\u6570\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d crypt<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 result = crypt (original, salt);\r\n\r\n\u89e3\u8bf4 \u7528DES\u7b97\u6cd5\u52a0\u5bc6\u5b57\u7b26\u4e32\uff0coriginal\u662f\u5c06\u8981\u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\uff0csalt\u662f\u4e24\u4e2a\u5b57\u7b26\u7684\u5b57\u7b26\u4e32\uff0c\r\n\u5b9a\u4e49\u5982\u4f55\u6539\u53d8DES\u7b97\u6cd5\uff0c\u4ee5\u4f7f\u66f4\u96be\u89e3\u7801\u3002\u8fd4\u56de\u503c\u4e3a\u52a0\u5bc6\u540e\u7684\u4e32\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d hex<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 decnum = hex (hexnum);\r\n\r\n\u89e3\u8bf4 \u5c06\u5341\u516d\u8fdb\u5236\u6570(\u5b57\u7b26\u4e32\u5f62\u5f0f)\u8f6c\u5316\u4e3a\u5341\u8fdb\u5236\u6570\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d int<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 intnum = int (floatnum);\r\n\r\n\u89e3\u8bf4 \u5c06\u6d6e\u70b9\u6570\u820d\u53bb\u5c0f\u6570\u90e8\u5206\u8f6c\u5316\u4e3a\u6574\u578b\u6570\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d oct<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 decnum = oct (octnum);\r\n\r\n\u89e3\u8bf4 \u5c06\u516b\u8fdb\u5236\u6570(\u5b57\u7b26\u4e32\u5f62\u5f0f)\u6216\u5341\u516d\u8fdb\u5236\u6570(\"0x..\"\u5f62\u5f0f)\u8f6c\u5316\u4e3a\u5341\u8fdb\u5236\u6570\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d ord<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 asciival = ord (char);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u5355\u4e2a\u5b57\u7b26\u7684ASCII\u503c\uff0c\u4e0ePASCAL\u4e2d\u540c\u540d\u51fd\u6570\u7c7b\u4f3c\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d chr<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 $char = chr (asciival);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56deASCII\u503c\u7684\u76f8\u5e94\u5b57\u7b26\uff0c\u4e0ePASCAL\u4e2d\u540c\u540d\u51fd\u6570\u7c7b\u4f3c\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d pack<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 formatstr = pack(packformat, list);\r\n\r\n\u89e3\u8bf4 \u628a\u4e00\u4e2a\u5217\u8868\u6216\u6570\u7ec4\u4ee5\u5728\u5b9e\u9645\u673a\u5668\u5b58\u8d2e\u683c\u5f0f\u6216C\u7b49\u7f16\u7a0b\u8bed\u8a00\u4f7f\u7528\u7684\u683c\u5f0f\u8f6c\u5316\uff08\u5305\u88c5\uff09\u5230\r\n\u4e00\u4e2a\u7b80\u5355\u53d8\u91cf\u4e2d\u3002\u53c2\u6570packformat\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u683c\u5f0f\u5b57\u7b26\uff0c\u5217\u8868\u4e2d\u6bcf\u4e2a\u5143\u7d20\u5bf9\u5e94\u4e00\u4e2a\uff0c\r\n\u5404\u683c\u5f0f\u5b57\u7b26\u95f4\u53ef\u7528\u7a7a\u683c\u6216tab\u9694\u5f00\uff0c\u56e0\u4e3apack\u5ffd\u7565\u7a7a\u683c\u3002\r\n\r\n\u9664\u4e86\u683c\u5f0fa\u3001A\u548c@\u5916\uff0c\u91cd\u590d\u4f7f\u7528\u4e00\u79cd\u683c\u5f0f\u591a\u6b21\u53ef\u5728\u5176\u540e\u52a0\u4e2a\u6574\u6570\uff0c\u5982\uff1a\r\n\r\n$twoints = pack (\"i2\", 103, 241);\r\n\r\n\u628a\u540c\u4e00\u683c\u5f0f\u5e94\u7528\u4e8e\u6240\u6709\u7684\u5143\u7d20\u5219\u52a0\u4e2a*\u53f7\uff0c\u5982\uff1a\r\n\r\n$manyints = pack (\"i*\", 14, 26, 11, 83);\r\n\r\n\u5bf9\u4e8ea\u548cA\u800c\u8a00\uff0c\u5176\u540e\u7684\u6574\u6570\u8868\u793a\u8981\u521b\u5efa\u7684\u5b57\u7b26\u4e32\u957f\u5ea6\uff0c\u91cd\u590d\u65b9\u6cd5\u5982\u4e0b\uff1a\r\n\r\n$strings = pack (\"a6\" x 2, \"test1\", \"test2\");\r\n\r\n\u683c\u5f0f@\u7684\u60c5\u51b5\u6bd4\u8f83\u7279\u6b8a\uff0c\u5176\u540e\u5fc5\u987b\u52a0\u4e2a\u6574\u6570\uff0c\u8be5\u6570\u8868\u793a\u5b57\u7b26\u4e32\u5fc5\u987b\u7684\u957f\u5ea6\uff0c\u5982\u679c\u957f\u5ea6\u4e0d\u591f\r\n\uff0c\u5219\u7528\u7a7a\u5b57\u7b26(null)\u8865\u8db3\uff0c\u5982\uff1a\r\n\r\n$output = pack (\"a @6 a\", \"test\", \"test2\");\r\n\r\npack\u51fd\u6570\u6700\u5e38\u89c1\u7684\u7528\u9014\u662f\u521b\u5efa\u53ef\u4e0eC\u7a0b\u5e8f\u4ea4\u4e92\u7684\u6570\u636e\uff0c\u4f8b\u5982C\u8bed\u8a00\u4e2d\u5b57\u7b26\u4e32\u5747\u4ee5\u7a7a\u5b57\u7b26(n\r\null)\u7ed3\u5c3e\uff0c\u521b\u5efa\u8fd9\u6837\u7684\u6570\u636e\u53ef\u4ee5\u8fd9\u6837\u505a\uff1a\r\n\r\n$Cstring = pack (\"ax\", $mystring);\r\n\r\n\u4e0b\u8868\u662f\u4e00\u4e9b\u683c\u5f0f\u5b57\u7b26\u4e0eC\u4e2d\u6570\u636e\u7c7b\u578b\u7684\u7b49\u4ef7\u5173\u7cfb\uff1a\r\n\r\n\u5b57\u7b26 \u7b49\u4ef7C\u6570\u636e\u7c7b\u578b\r\n\r\nC char\r\n\r\nd double\r\n\r\nf float\r\n\r\ni int\r\n\r\nI unsigned int (or unsigned)\r\n\r\nl long\r\n\r\nL unsigned long\r\n\r\ns short\r\n\r\nS unsigned short\r\n\r\n\u5b8c\u6574\u7684\u683c\u5f0f\u5b57\u7b26\u89c1\u4e0b\u8868\u3002\r\n\r\n\u683c\u5f0f\u5b57\u7b26 \u63cf\u8ff0\r\n\r\na \u7528\u7a7a\u5b57\u7b26(null)\u8865\u8db3\u7684\u5b57\u7b26\u4e32\r\n\r\nA \u7528\u7a7a\u683c\u8865\u8db3\u7684\u5b57\u7b26\u4e32\r\n\r\nb \u4f4d\u4e32\uff0c\u4f4e\u4f4d\u5728\u524d\r\n\r\nB \u4f4d\u4e32\uff0c\u9ad8\u4f4d\u5728\u524d\r\n\r\nc \u5e26\u7b26\u53f7\u5b57\u7b26\uff08\u901a\u5e38-128~127\uff09\r\n\r\nC \u65e0\u7b26\u53f7\u5b57\u7b26\uff08\u901a\u5e388\u4f4d\uff09\r\n\r\nd \u53cc\u7cbe\u5ea6\u6d6e\u70b9\u6570\r\n\r\nf \u5355\u7cbe\u5ea6\u6d6e\u70b9\u6570\r\n\r\nh \u5341\u516d\u8fdb\u5236\u6570\u4e32\uff0c\u4f4e\u4f4d\u5728\u524d\r\n\r\nH \u5341\u516d\u8fdb\u5236\u6570\u4e32\uff0c\u9ad8\u4f4d\u5728\u524d\r\n\r\ni \u5e26\u7b26\u53f7\u6574\u6570\r\n\r\nI \u65e0\u7b26\u53f7\u6574\u6570\r\n\r\nl \u5e26\u7b26\u53f7\u957f\u6574\u6570\r\n\r\nL \u65e0\u7b26\u53f7\u957f\u6574\u6570\r\n\r\nn \u7f51\u7edc\u5e8f\u77ed\u6574\u6570\r\n\r\nN \u7f51\u7edc\u5e8f\u957f\u6574\u6570\r\n\r\np \u5b57\u7b26\u4e32\u6307\u9488\r\n\r\ns \u5e26\u7b26\u53f7\u77ed\u6574\u6570\r\n\r\nS \u65e0\u7b26\u53f7\u77ed\u6574\u6570\r\n\r\nu \u8f6c\u5316\u6210uuencode\u683c\u5f0f\r\n\r\nv VAX\u5e8f\u77ed\u6574\u6570\r\n\r\nV VAX\u5e8f\u957f\u6574\u6570\r\n\r\nx \u4e00\u4e2a\u7a7a\u5b57\u8282\r\n\r\nX \u56de\u9000\u4e00\u4e2a\u5b57\u8282\r\n\r\n@ \u4ee5\u7a7a\u5b57\u8282(null)\u586b\u5145<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d unpack<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @list = unpack (packformat, formatstr);\r\n\r\n\u89e3\u8bf4 unpack\u4e0epack\u529f\u80fd\u76f8\u53cd\uff0c\u5c06\u4ee5\u673a\u5668\u683c\u5f0f\u5b58\u8d2e\u7684\u503c\u8f6c\u5316\u6210Perl\u4e2d\u503c\u7684\u5217\u8868\u3002\u5176\u683c\u5f0f\u5b57\u7b26\r\n\u4e0epack\u57fa\u672c\u76f8\u540c\uff08\u5373\u4e0a\u8868\uff09\uff0c\u4e0d\u540c\u7684\u6709\uff1aA\u683c\u5f0f\u5c06\u673a\u5668\u683c\u5f0f\u5b57\u7b26\u4e32\u8f6c\u5316\u4e3aPerl\u5b57\u7b26\u4e32\u5e76\u53bb\u6389\r\n\u5c3e\u90e8\u6240\u6709\u7a7a\u683c\u6216\u7a7a\u5b57\u7b26\uff1bx\u4e3a\u8df3\u8fc7\u4e00\u4e2a\u5b57\u8282\uff1b@\u4e3a\u8df3\u8fc7\u4e00\u4e9b\u5b57\u8282\u5230\u6307\u5b9a\u7684\u4f4d\u7f6e\uff0c\u5982@4\u4e3a\u8df3\u8fc7\r\n4\u4e2a\u5b57\u8282\u3002\u4e0b\u9762\u770b\u4e00\u4e2a@\u548cX\u5408\u540c\u7684\u4f8b\u5b50\uff1a $longrightint = unpack (\"@* X4 L\", $pac\r\nkstring);\r\n\r\n\u6b64\u8bed\u53e5\u5c06\u6700\u540e\u56db\u4e2a\u5b57\u8282\u770b\u4f5c\u65e0\u7b26\u53f7\u957f\u6574\u6570\u8fdb\u884c\u8f6c\u5316\u3002\u4e0b\u9762\u770b\u4e00\u4e2a\u5bf9uuencode\u6587\u4ef6\u89e3\u7801\u7684\r\n\u4f8b\u5b50\uff1a#!\/usr\/local\/bin\/perl\r\n\r\nopen (CODEDFILE, \"\/u\/janedoe\/codefile\") ||\r\ndie (\"Can't open input file\");\r\n\r\nopen (OUTFILE, \"&gt;outfile\") ||\r\ndie (\"Can't open output file\");\r\n\r\nwhile ($line = &lt;CODEDFILE&gt;) {\r\n\u00a0 $decoded = unpack(\"u\", $line);\r\n\u00a0 print OUTFILE ($decoded);\r\n\u00a0 }\r\n\r\nclose (OUTFILE);\r\nclose (CODEDFILE);\r\n\r\n\u5f53\u5c06pack\u548cunpack\u7528\u4e8euuencode\u65f6\uff0c\u8981\u8bb0\u4f4f\uff0c\u867d\u7136\u5b83\u4eec\u4e0eUNIX\u4e2d\u7684uuencode\u3001uudecode\r\n\u5de5\u5177\u7b97\u6cd5\u76f8\u540c\uff0c\u4f46\u5e76\u4e0d\u63d0\u4f9b\u9996\u884c\u548c\u672b\u884c\uff0c\u5982\u679c\u60f3\u7528uudecode\u5bf9\u7531pack\u7684\u8f93\u51fa\u521b\u5efa\u7684\u6587\u4ef6\u8fdb\r\n\u884c\u89e3\u7801\uff0c\u5fc5\u987b\u4e5f\u628a\u9996\u884c\u548c\u672b\u884c\u8f93\u51fa\uff08\u8be6\u89c1UNIX\u4e2duuencode\u5e2e\u52a9\uff09\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d vec<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = vec (vector, index, bits);\r\n\r\n\u89e3\u8bf4 \u987e\u540d\u601d\u4e49\uff0cvec\u5373\u77e2\u91cf(vector)\u51fd\u6570\uff0c\u5b83\u628a\u7b80\u5355\u53d8\u91cfvector\u7684\u503c\u770b\u4f5c\u591a\u5757(\u7ef4)\u6570\u636e\uff0c\r\n\u6bcf\u5757\u542b\u4e00\u5b9a\u6570\u76ee\u7684\u4f4d\uff0c\u5408\u8d77\u6765\u5373\u4e00\u4e2a\u77e2\u91cf\u6570\u636e\u3002\u6bcf\u6b21\u7684\u8c03\u7528\u8bbf\u95ee\u5176\u4e2d\u4e00\u5757\u6570\u636e\uff0c\u53ef\u4ee5\u8bfb\u53d6\r\n\uff0c\u4e5f\u53ef\u4ee5\u5199\u5165\u3002\u53c2\u6570index\u5c31\u8c61\u6570\u7ec4\u4e0b\u6807\u4e00\u6837\uff0c\u63d0\u51fa\u8bbf\u95ee\u54ea\u4e00\u5757\uff0c0\u4e3a\u7b2c\u4e00\u5757\uff0c\u4f9d\u6b21\u7c7b\u63a8\uff0c\r\n\u8981\u6ce8\u610f\u7684\u662f\u8bbf\u95ee\u6b21\u5e8f\u662f\u4ece\u53f3\u5230\u5de6\u7684\uff0c\u5373\u7b2c\u4e00\u5757\u5728\u6700\u53f3\u8fb9\u3002\u53c2\u6570bits\u6307\u5b9a\u6bcf\u5757\u4e2d\u7684\u4f4d\u6570\uff0c\u53ef\r\n\u4ee5\u4e3a1,2,4,8,16\u621632\u3002\r\n\r\n\u4f8b\u5b50 #!\/usr\/local\/bin\/perl\r\n\r\n$vector = pack (\"B*\", \"11010011\");\r\n$val1 = vec ($vector, 0, 4);\r\n$val2 = vec ($vector, 1, 4);\r\n\r\nprint (\"high-to-low order values: $val1 and $val2\\n\");\r\n\r\n$vector = pack (\"b*\", \"11010011\");\r\n$val1 = vec ($vector, 0, 4);\r\n$val2 = vec ($vector, 1, 4);\r\n\r\nprint (\"low-to-high order values: $val1 and $val2\\n\");\r\n\r\n\u7ed3\u679c high-to-low order values: 3 and 13\r\n\r\nlow-to-high order values: 11 and 12<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d defined<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = defined (expr);\r\n\r\n\u89e3\u8bf4 \u5224\u65ad\u4e00\u4e2a\u53d8\u91cf\u3001\u6570\u7ec4\u6216\u6570\u7ec4\u7684\u4e00\u4e2a\u5143\u7d20\u662f\u5426\u5df2\u7ecf\u88ab\u8d4b\u503c\u3002expr\u4e3a\u53d8\u91cf\u540d\u3001\u6570\u7ec4\u540d\u6216\u4e00\r\n\u4e2a\u6570\u7ec4\u5143\u7d20\u3002\r\n\r\n\u5982\u679c\u5df2\u5b9a\u4e49\uff0c\u8fd4\u56de\u771f\uff0c\u5426\u5219\u8fd4\u56de\u5047\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d undef<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 retval = undef (expr);\r\n\r\n\u89e3\u8bf4 \u53d6\u6d88\u53d8\u91cf\u3001\u6570\u7ec4\u6216\u6570\u7ec4\u5143\u7d20\u751a\u81f3\u5b50\u7a0b\u5e8f\u7684\u5b9a\u4e49\uff0c\u56de\u6536\u5176\u7a7a\u95f4\u3002\u8fd4\u56de\u503c\u59cb\u7ec8\u4e3a\u672a\u5b9a\u4e49\u503c\r\n\uff0c\u6b64\u503c\u4e0e\u7a7a\u4e32\u7b49\u6548\u3002<\/pre>\n<h1>\u4e94\u3001\u6570\u7ec4\u548c\u5217\u8868\u51fd\u6570<\/h1>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d grep<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @foundlist = grep (pattern, @searchlist);\r\n\r\n\u89e3\u8bf4 \u4e0e\u540c\u540d\u7684UNIX\u67e5\u627e\u5de5\u5177\u7c7b\u4f3c\uff0cgrep\u51fd\u6570\u5728\u5217\u8868\u4e2d\u62bd\u53d6\u4e0e\u6307\u5b9a\u6a21\u5f0f\u5339\u914d\u7684\u5143\u7d20\uff0c\u53c2\u6570p\r\nattern\u4e3a\u6b32\u67e5\u627e\u7684\u6a21\u5f0f\uff0c\u8fd4\u56de\u503c\u662f\u5339\u914d\u5143\u7d20\u7684\u5217\u8868\u3002\r\n\r\n\u4f8b\u5b50 @list = (\"This\", \"is\", \"a\", \"test\");\r\n\r\n@foundlist = grep(\/^[tT]\/, @list);\r\n\r\n\u7ed3\u679c @foundlist = (\"This\", \"test\");<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d splice<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @retval = splice (@array, slipelements, length, @newlist);\r\n\r\n\u89e3\u8bf4 \u62fc\u63a5\u51fd\u6570\u53ef\u4ee5\u5411\u5217\u8868\uff08\u6570\u7ec4\uff09\u4e2d\u95f4\u63d2\u5165\u5143\u7d20\u3001\u5220\u9664\u5b50\u5217\u8868\u6216\u66ff\u6362\u5b50\u5217\u8868\u3002\u53c2\u6570ski\r\npelements\u662f\u62fc\u63a5\u524d\u8df3\u8fc7\u7684\u5143\u7d20\u6570\u76ee\uff0clength\u662f\u88ab\u66ff\u6362\u7684\u5143\u7d20\u6570\uff0cnewlist\u662f\u5c06\u8981\u62fc\u63a5\u8fdb\u6765\r\n\u7684\u5217\u8868\u3002\u5f53newlist\u7684\u957f\u5ea6\u5927\u4e8elength\u65f6\uff0c\u540e\u9762\u7684\u5143\u7d20\u81ea\u52a8\u540e\u79fb\uff0c\u53cd\u4e4b\u5219\u5411\u524d\u7f29\u8fdb\u3002\u56e0\u6b64\uff0c\r\n\u5f53length=0\u65f6\uff0c\u5c31\u76f8\u5f53\u4e8e\u5411\u5217\u8868\u4e2d\u63d2\u5165\u5143\u7d20\uff0c\u800c\u5f62\u5982\u8bed\u53e5\r\n\r\nsplice (@array, -1, 0, \"Hello\");\r\n\r\n\u5219\u5411\u6570\u7ec4\u672b\u5c3e\u6dfb\u52a0\u5143\u7d20\u3002\u800c\u5f53newlist\u4e3a\u7a7a\u65f6\u5c31\u76f8\u5f53\u4e8e\u5220\u9664\u5b50\u5217\u8868\uff0c\u8fd9\u65f6\uff0c\u5982\u679clength\u4e3a\u7a7a\r\n\uff0c\u5c31\u4ece\u7b2cskipelements\u4e2a\u5143\u7d20\u540e\u5168\u90e8\u5220\u9664\uff0c\u800c\u5220\u9664\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u5219\u4e3a\uff1asplice (@array,\r\n-1);\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u8fd4\u56de\u503c\u4e3a\u88ab\u5220\u53bb\u7684\u5143\u7d20\u5217\u8868\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d shift<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 element = shift (@arrayvar);\r\n\r\n\u89e3\u8bf4 \u5220\u53bb\u6570\u7ec4\u7b2c\u4e00\u4e2a\u5143\u7d20\uff0c\u5269\u4e0b\u5143\u7d20\u524d\u79fb\uff0c\u8fd4\u56de\u88ab\u5220\u53bb\u7684\u5143\u7d20\u3002\u4e0d\u52a0\u53c2\u6570\u65f6\uff0c\u7f3a\u7701\u5730\u5bf9@\r\nARGV\u8fdb\u884c\u64cd\u4f5c\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d unshift<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 count = unshift (@arrayver, elements);\r\n\r\n\u89e3\u8bf4 \u4f5c\u7528\u4e0eshift\u76f8\u53cd\uff0c\u5728\u6570\u7ec4arrayvar\u5f00\u5934\u589e\u52a0\u4e00\u4e2a\u6216\u591a\u4e2a\u5143\u7d20\uff0c\u8fd4\u56de\u503c\u4e3a\u7ed3\u679c(\u5217\u8868)\r\n\u7684\u957f\u5ea6\u3002\u7b49\u4ef7\u4e8esplice (@array, 0, 0, elements);<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d push<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 push (@arrayvar, elements);\r\n\r\n\u89e3\u8bf4 \u5728\u6570\u7ec4\u672b\u5c3e\u589e\u52a0\u4e00\u4e2a\u6216\u591a\u4e2a\u5143\u7d20\u3002\u7b49\u4ef7\u4e8eslice (@array, @array, 0, elements);<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d pop<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 element = pop (@arrayvar);\r\n\r\n\u89e3\u8bf4 \u4e0epush\u4f5c\u7528\u76f8\u53cd\uff0c\u5220\u53bb\u5217\u8868\u6700\u540e\u4e00\u4e2a\u5143\u7d20\uff0c\u5e76\u5c06\u5176\u4f5c\u4e3a\u8fd4\u56de\u503c\uff0c\u5f53\u5217\u8868\u5df2\u7a7a\uff0c\u5219\u8fd4\u56de\r\n\u201c\u672a\u5b9a\u4e49\u503c\u201d(\u5373\u7a7a\u4e32)\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d split<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @list = split (pattern, string, maxlength);\r\n\r\n\u89e3\u8bf4 \u5c06\u5b57\u7b26\u4e32\u5206\u5272\u6210\u4e00\u7ec4\u5143\u7d20\u7684\u5217\u8868\u3002\u6bcf\u5339\u914d\u4e00\u6b21pattern\uff0c\u5c31\u5f00\u59cb\u4e00\u4e2a\u65b0\u5143\u7d20\uff0c\u4f46patt\r\nern\u672c\u8eab\u4e0d\u5305\u542b\u5728\u5143\u7d20\u4e2d\u3002maxlength\u662f\u53ef\u9009\u9879\uff0c\u5f53\u6307\u5b9a\u5b83\u65f6\uff0c\u8fbe\u5230\u8be5\u957f\u5ea6\u5c31\u4e0d\u518d\u5206\u5272\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d sort<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @sorted = sort (@list);\r\n\r\n\u89e3\u8bf4 \u6309\u5b57\u6bcd\u6b21\u5e8f\u7ed9\u5217\u8868\u6392\u5e8f\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d reverse<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @reversed = reverse (@list);\r\n\r\n\u89e3\u8bf4 \u6309\u5b57\u6bcd\u53cd\u5e8f\u7ed9\u5217\u8868\u6392\u5e8f\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d map<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @resultlist = map (expr, @list);\r\n\r\n\u89e3\u8bf4 \u6b64\u51fd\u6570\u5728Perl5\u4e2d\u5b9a\u4e49\uff0c\u53ef\u4ee5\u628a\u5217\u8868\u4e2d\u7684\u5404\u4e2a\u5143\u7d20\u4f5c\u4e3a\u8868\u8fbe\u5f0fexpr\u7684\u64cd\u4f5c\u6570\u8fdb\u884c\u8fd0\u7b97\r\n\uff0c\u5176\u672c\u8eab\u4e0d\u6539\u53d8\uff0c\u7ed3\u679c\u4f5c\u4e3a\u8fd4\u56de\u503c\u3002\u5728\u8868\u8fbe\u5f0fexpr\u4e2d\uff0c\u7cfb\u7edf\u53d8\u91cf$_\u4ee3\u8868\u5404\u4e2a\u5143\u7d20\u3002\r\n\r\n\u4f8b\u5b50 1\u3001@list = (100, 200, 300);\r\n\r\n@results = map ($_+1, @list);\r\n\r\n2\u3001@results = map (&amp;mysub($_), @list);\r\n\r\n\u7ed3\u679c 1\u3001(101, 201, 301)\r\n\r\n2\u3001\u65e0<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d wantarray<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 result = wantarray();\r\n\r\n\u89e3\u8bf4 Perl\u4e2d\uff0c\u4e00\u4e9b\u5185\u7f6e\u51fd\u6570\u7684\u884c\u4e3a\u6839\u636e\u5176\u5904\u7406\u7b80\u5355\u53d8\u91cf\u8fd8\u662f\u6570\u7ec4\u6709\u6240\u4e0d\u540c\uff0c\u5982chop\u3002\u81ea\u5b9a\r\n\u4e49\u7684\u5b50\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u5b9a\u4e49\u8fd9\u6837\u4e24\u79cd\u884c\u4e3a\u3002\u5f53\u5b50\u7a0b\u5e8f\u88ab\u671f\u671b\u8fd4\u56de\u5217\u8868\u65f6\uff0c\u6b64\u51fd\u6570\u8fd4\u56de\u503c\u4e3a\u975e\u96f6\r\n\u503c(\u771f)\uff0c\u5426\u5219\u4e3a\u96f6\u503c(\u5047)\u3002\r\n\r\n\u4f8b\u5b50 #!\/usr\/local\/bin\/perl\r\n\r\n@array = &amp;mysub();\r\n$scalar = &amp;mysub();\r\n\r\nsub mysub {\r\n\u00a0 if (wantarray()) {\r\n\u00a0 \u00a0 print (\"true\\n\");\r\n\u00a0 } else {\r\n\u00a0 \u00a0 print (\"false\\n\");\r\n\u00a0 }\r\n}\r\n\r\n\u7ed3\u679c $program\r\n\r\ntrue\r\n\r\nfalse\r\n\r\n$<\/pre>\n<h1>\u516d\u3001\u5173\u8054\u6570\u7ec4\u51fd\u6570<\/h1>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d keys<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @list = keys (%assoc_array);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u5173\u8054\u6570\u7ec4\u65e0\u5e8f\u7684\u4e0b\u6807\u5217\u8868\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d values<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @list = values (%assoc_array);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u5173\u8054\u6570\u7ec4\u65e0\u5e8f\u7684\u503c\u5217\u8868\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d each<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 @pair = each (%assoc_array);\r\n\r\n\u89e3\u8bf4 \u8fd4\u56de\u4e24\u4e2a\u5143\u7d20\u7684\u5217\u8868--\u952e\u503c\u5bf9\uff08\u5373\u4e0b\u6807\u548c\u76f8\u5e94\u7684\u503c\uff09\uff0c\u540c\u6837\u65e0\u5e8f\u3002\u5f53\u5173\u8054\u6570\u7ec4\u5df2\u7a7a\uff0c\r\n\u5219\u8fd4\u56de\u7a7a\u5217\u8868\u3002<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d delete<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 element = delete (assoc_array_item);\r\n\r\n\u89e3\u8bf4 \u5220\u9664\u5173\u8054\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\uff0c\u5e76\u5c06\u5176\u503c\u4f5c\u4e3a\u8fd4\u56de\u503c\u3002\r\n\r\n\u4f8b\u5b50 %array = (\"foo\", 26, \"bar\", 17\");\r\n\r\n$retval = delete ($array{\"foo\"});\r\n\r\n\u7ed3\u679c $retval = 26;<\/pre>\n<p><span style=\"color: #ff0000;\">\u51fd\u6570\u540d exists<\/span><\/p>\n<pre>\u8c03\u7528\u8bed\u6cd5 result = exists (element);\r\n\r\n\u89e3\u8bf4 \u5728Perl5\u4e2d\u5b9a\u4e49\uff0c\u5224\u65ad\u5173\u8054\u6570\u7ec4\u4e2d\u662f\u5426\u5b58\u5728\u67d0\u5143\u7d20\uff0c\u82e5\u5b58\u5728\uff0c\u8fd4\u56de\u975e\u96f6\u503c(\u771f)\uff0c\u5426\u5219\r\n\u8fd4\u56de\u96f6\u503c(\u5047)\u3002\r\n\r\n\u4f8b\u5b50 $result = exists ($myarray{$mykey});<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u8fdb\u7a0b\u5904\u7406\u51fd\u6570 1\u3001\u8fdb\u7a0b\u542f\u52a8\u51fd\u6570 \u51fd\u6570\u540d eval \u8c03\u7528\u8bed\u6cd5 eval(str &hellip; <a href=\"http:\/\/www.chenlianfu.com\/?p=265\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[9],"_links":{"self":[{"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=\/wp\/v2\/posts\/265"}],"collection":[{"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=265"}],"version-history":[{"count":14,"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=\/wp\/v2\/posts\/265\/revisions"}],"predecessor-version":[{"id":267,"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=\/wp\/v2\/posts\/265\/revisions\/267"}],"wp:attachment":[{"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=265"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.chenlianfu.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}