open file

2013-08-26 18:07
open File, "foo.txt" or die "開啟檔案失敗: $!";


在這裡,有幾個地方需要解釋的,首先自然就是die的用法。我們先嘗試開啟foo.txt這個檔案,接著用了一個邏輯運算元'or',後面接著使用die 這個敘述。根據我們對or運算符的了解,程式會先嘗試開啟檔案"foo.txt",如果成功開啟,就會傳回1,因此or後面的敘述就會被省略。相反的,如 果開啟檔案失敗,open敘述會傳回0。如此一來,Perl就會去執行or後面的敘述,因此他就會die了,也就是只執行到這裡為止。
利用die結束程式的執行時,我們會希望知道程式為甚麼進入die的狀況,因此我們便利用die印出目前的情況。這聽起來就像程式說完遺言之後就不動了。 而die的列印就跟我們一般使用print沒甚麼不同,因此我們可以加上可以提醒程式寫作者或使用者的字串。不過在剛剛的例子,我們看到了一個不尋常的變 數:"$!"。這是Perl預設的一個變數,他會儲存系統產生出來的錯誤訊息。因為當我們透過Perl要進行檔案的存取時,其實只是透過Perl和作業系 統進行溝通,因此一但Perl對作業系統的要求產生失敗的狀況,他便會從作業系統得到相關的錯誤訊息,而這個訊息也會被存入$!這個變數中。
所以如果我們執行剛剛改過的那個程式,就可以得到像這樣的結果:

 


[hcchien@Apple]% perl ch3.pl
開啟檔案失敗: No such file or directory at ch3.pl line 5.