一:system
system函数是启动perl子程序最简单的方法。eg:system “date”
1:可以利用shell功能来启动后台进程
system "run_cmd with parameters &";#在后台执行
2:system执行正常返回值为0,否则返回值非0.
3:支持多个参数
二:exec function
类似于system;
区别:system会创建子进程执行外部命令,父进程等待创建的子进程结束并继续执行下面代码;而exec不会开启子进程。而是取代父进程成为新的父进程,一般和fork配合使用;exec调用之后写的任何代码都无法运行。
三:环境变量
%ENV:修改%ENV可以改变环境变量,但不影响shell或者其他父进程
四:反引号捕获输出结果
五:fork进行并发操作
fork从一个进程中创建两个进程,如果成功,该函数给父进程返回新创建的子程序ID,而给子程序返回0。如果系统没有足够的资源分配一个新的进程,那么调用失败并返回undef。
父进程可以使用waitpid函数来等待子进程的结束
eg:
输出:当命令行为0时,执行else段,系统fork自动给值,pid得到子程序的ID值,所以先执行父程序段,再执行子程序段,若在父程序段出现waitpid,则进入子程序,执行完子程序再执行剩下的父程序。