⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func.htm

📁 Perl入门教程
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<title>Perl教程 附录一 函数集</title>
<LINK rel="stylesheet" href="article.css" type="text/css">
</head>
<body>
<br>
<p align="center">附录一 函数集(未定稿)</p>

<p align="center"><a target="_blank" href="http://flamephoenix.126.com">by flamephoenix</a></p>

<a href="#1">一、进程处理函数</a><br>
 &nbsp; <a href="#1.1">1、进程启动函数</a><br>
 &nbsp; <a href="#1.2">2、进程终止函数</a><br>
 &nbsp; <a href="#1.3">3、进程控制函数</a><br>
 &nbsp; <a href="#1.4">4、其它控制函数 </a><br>
<a href="#2">二、数学函数</a><br>
<a href="#3">三、字符串处理函数</a><br>
<a href="#4">四、标量转换函数</a><br>
<a href="#5">五、数组和列表函数</a><br>
<a href="#6">六、关联数组函数</a><br><br>

<a name="1">一、进程处理函数</a><br><br>

<a name="1.1">1、进程启动函数</a><br>
<p>
<table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>eval</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>eval(string)</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>将string看作Perl语句执行。<br>正确执行后,系统变量$@为空串,如果有错误,$@中为错误信息。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>$print = &quot;print (\&quot;hello,world\\n\&quot;);&quot;;<br>eval ($print);</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>hello, world</td>
    </tr>
</table>
</p>
<p>
<table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>system</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>system(list)</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>list中第一个元素为程序名,其余为参数。<br>system启动一个进程运行程序并等待其结束,程序结束后错误代码左移八位成为返回值。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>@proglist = (&quot;echo&quot;, &quot;hello,world!&quot;);<br>system(@proglist);</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>hello, world!</td>
    </tr>
</table>
</p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>fork</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>procid = fork();</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>创建程序的两个拷贝--父进程和子进程--同时运行。子进程返回零,父进程返回非零值,此值为子程序的进程ID号。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>$retval = fork();<br>if ($retval == 0) {<br> &nbsp; # this is the child process<br> &nbsp;  exit;   # this terminates the child process<br>} else {<br> &nbsp; # this is the parent process<br>}</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>无</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>pipe</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>pipe (infile, outfile);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>与fork合用,给父进程和子进程提供通信的方式。送到outfile文件变量的信息可以通过infile文件变量读取。步骤:<br>1、调用pipe<br>2、用fork将程序分成父进程和子进程<br>3、一个进程关掉infile,另一个关掉outfile</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>pipe (INPUT, OUTPUT);<br>$retval = fork();<br>if ($retval != 0) {<br> &nbsp; # this is the parent process <br> &nbsp; close (INPUT);<br> &nbsp; print (&quot;Enter a line of input:\n&quot;);<br> &nbsp; $line = &lt;STDIN&gt;;<br> &nbsp; print OUTPUT ($line);<br>} else {<br> &nbsp; # this is the child process<br> &nbsp; close (OUTPUT);<br> &nbsp; $line = &lt;INPUT&gt;;<br> &nbsp; print ($line);<br> &nbsp; exit (0);<br>}<br></td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>$<br>program<br>Enter a line of input:<br>Here is a test line<br>Here is a test line<br>$</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>exec</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>exec (list);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>与system类似,区别是启动新进程前结束当前程序。常与fork合用,当fork分成两个进程后,子进程用exec启动另一个程序。</td>
    </tr>
    <tr>
	<td>例子</td>
<td>&nbsp;
</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>syscall</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>syscall (list);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>调用系统函数,list第一个元素是系统调用名,其余为参数。<br>如果参数是数字,就转化成C的整型数(type int)。否则传递字符串的指针。详见UNIX的帮助或Perl文档。<br>使用syscall必须包含文件syscall.pl,即:<br> require ("syscall.ph"); </td>
    </tr>
    <tr>
        <td>例子</td>
<td>&nbsp;</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<a name="1.2">2、进程终止函数<br><br>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>die</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>die (message);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>终止程序并向STDERR输出错误信息。message可以为字符串或列表。如果最后一个参数不包含换行符,则程序文件名和行号也被输出。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>die ("Cannot open input file");</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>Cannot open input file at myprog line 6.</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>warn</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>warn (message);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>与die类似,区别是不终止程序。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>warn("Danger! Danger!\n");</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>Danger! Danger!</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>exit</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>exit (retcode);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>终止程序并指定返回值。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>exit(2);</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>无</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>kill</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>kill (signal, proclist);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>给一组进程发送信号。<br>signal是发送的数字信号,9为杀掉进程。<br>proclist是进程ID列表。详见kill的UNIX帮助。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<a name="1.3">3、进程控制函数</a><br>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>sleep</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>sleep (time);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>将程序暂停一段时间。time是停止的秒数。返回值为实际停止的秒数。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>sleep (5);</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>无</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>wait</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>procid = wait();</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>暂停程序执行,等待子进程终止。<br>不需要参数,返回值为子进程ID,如果没有子进程,返回-1。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>waitpid</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>waitpid (procid, waitflag);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>暂停程序执行,等待特定的子进程终止。procid为等待的进程ID</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>$procid = fork();<br>if ($procid == 0) {<br> &nbsp;  # this is the child process<br> &nbsp;  print ("this line is printed first\n");<br> &nbsp;  exit(0);<br>} else {<br> &nbsp;  # this is the parent process<br> &nbsp;  waitpid ($procid, 0);<br> &nbsp;  print ("this line is printed last\n");<br>}</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>$ program<br>this line is printed first<br>this line is printed last<br>$</td>
    </tr>
</table></p>
<a name="1.4">4、其它控制函数</a><br>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>caller</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>subinfo = caller();</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>返回调用者的程序名和行号,用于Perl Debugger。<br>返回值为三元素的列表:<br>1、调用处的包名<br>2、调用者文件名<br>3、调用处的行号</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>chroot</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>chroot (dir);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>改变程序的根目录,详见chroot帮助。</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>local</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>local($variable);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>在语句块(由大括号包围的语句集合)中定义局域变量,仅在此语句块中起作用,对其的改变不对块外同名变量造成影响。<br><b>千万不要在循环中使用,否则每次循环都定义一个新的局域变量!</b></td>
    </tr>
    <tr>
        <td>例子</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>times</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>timelist = times</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>返回该程序及所有子进程消耗的工作时间。<br>返回值为四个浮点数的列表:<br>1、程序耗用的用户时间<br>2、程序耗用的系统时间<br>3、子进程耗用的用户时间<br>4、子进程耗用的系统时间</td>
    </tr>
    <tr>
        <td>例子</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>结果输出</td>
        <td>&nbsp;</td>
    </tr>
</table></p>
<a name="2">二、数学函数</a><br>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>sin</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>retval = sin (value);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>参数为弧度值。</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>cos</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>retval = cos (value);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>参数为弧度值。</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函数名</td>
        <td>atan2</td>
    </tr>
    <tr>
        <td>调用语法</td>
        <td>retval = atan2 (value1, value2);</td>
    </tr>
    <tr>
        <td>解说</td>
        <td>运算并返回value1除以value2结果的arctan值,单位为弧度,范围在-PI~PI。</td>
    </tr>
    <tr>
        <td>应用例:<br>角度转化成弧度子程序。</td>
        <td>sub degrees_to_radians {<br> &nbsp; local ($degrees) = @_;<br> &nbsp; local ($radians);11: <br> &nbsp; $radians = atan2(1,1) * $degrees / 45;<br>}</td>
    </tr>
</table></p>
<p><table border="1" cellspacing="1">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -