當你向系統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,即可達到要求。