当你向系统shell发送一个命令行时,shell创建一个进程来执行这个命令。这个新进程成为shell的子进程,它的执行不依赖于shell但又与shell相互协调。
同样,Perl程序也能启动新进程。
使用system()和exec()
生成新进程的最简单的方法就是用system操作符。如:
system("date");
若要将输出送至now_day文件,则可以:
system("date>now_day") ||die "不能建立now_day文件";
使用单引号
产生进程的另一方法是将shell命令置于两个单引号之间。如:
$nowday="现在时间:".'date'
$nowday的值为“现在时间:”和date命令的结果的连接。即:"现在时间:Fri Feb 18 23:49:23 PDT 1998"
综合范例
举一个综合例子,要求从date的输入中分析,周未时打印"周未了,别太辛苦",否则打印"好好工作"。简洁的写法为:
if('date'=~/^S/){
printf "网上学园欢迎您,周未了,别太辛苦";
} else {
printf "好好工作n"
}
date的输出格式第一个字节为星期,英语中恰好只有周未为"S"打头,因此使用了常规表达式判断第一个字符是否为S,即可达到要求。