14,程式管理(perl筆記)

tonykorn97發表於2007-06-23

1,system函式
要啟動子程式,perl最簡單的方法就是利用system函式,例如,在perl裡執行unix的date命令:
system "date";

system 'for i in *;do echo == $i ==; cat $i;done';
此處使用單引號,因為裡面的$符號是供shell使用的,而不是給perl看的。雙引號會讓perl將$i替換成它在perl的值,而不是讓shll處理。



2,避免使用shell
my $tarfile = "something*wicked.tar";
my @dirs = qw (fred | flintstone betty);
system "tar", "cvf", $tarfile, @dirs;


3, exec函式

4,環境變數

5,用反引號獲得輸出結果
my $now = `date`; #獲取date的輸出結果
print "The time is now $now"; #已包含換行符

如果想用標準輸出來獲得標準錯誤輸出,可以使用shell的“將標準錯誤輸出合併至當前標準輸出”功能,此功能一般在unix shell中通常寫成2>&1, 如下所示:
my $output_with_errors = `frobnitz -enable 2>&1`;


6,在列表上下文中使用反引號
如果某個命令輸出結果有許多行,那麼在標量上下文中使用反引號是,它會被當成一個很長的字串返回,其中包含換行符。但是如果是在列表上下文中使用相同的反引號,則會返回由各行輸出所組成的列表。
在標量上下文中,我們會立即得到所有輸出,必須自行拆開。
my $who_text = `who`;
但是在列表上下文中,則會自動取得拆成一行行的資料;
my @who_lines = `who`;

7,將程式視為檔案控制程式碼(下面的暫時還不熟練)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245699/,如需轉載,請註明出處,否則將追究法律責任。

相關文章