路徑
很多剛開始接觸 Perl 的網友,最頭大的就是「路徑(Path)」問題了。這裡要用很通俗的講法讓大家容易進入 Perl 的世界。
什麼是 Perl 路徑?什麼又是「絕對路徑」與「相對路徑」呢?
來,喝口咖啡,三分鐘以內保證你會懂。
Perl是一種應用程式,寫好的CGI文件是一種Script,好比一些主程式會有INI的參考檔一般。
舉個例子:如果有一張圖檔檔名是 sex.jpg,放在硬碟 C:\000 目錄中,C:\000 就是電腦中的真實路徑,所以是「絕對路徑」,而sex.jpg好比是一份文件,好像是 sex.pl或是 sex.cgi這樣的文件,所以是Script。
但是光有圖檔是無法讀取的,所以必須在電腦中安裝看圖程式,假設我們安裝了Adobe 的 Photoshop.exe 這個影像處理的程式,那麼只要點擊 sex.jpg 這個圖檔,Windows作業系統會找到登錄為 *.jpg檔的開檔程式 Photoshop.exe 去打開這張圖。
Photoshop.exe安裝在哪裡呢?假設是安裝在 C:\Adobe\ 這個目錄中,那麼Windows就會叫C:\Adobe\Photoshop.exe 去打開 sex.jpg 這張圖。
在這個例子中,C:\Adobe 就是安裝 Photoshop 的程式路徑,如同Perl.exe所在的路徑,我們稱之為「Perl路徑」。
至於相對路徑呢?別急,再喝口咖啡…
Web Server安裝在機器內,在機器的什麼地方跟這個路徑是沒有絕對關係的,但設好Web Server的目錄後就有關係了。
怎麼說呢?假如安裝 Sambar這個Server 程式,它是裝好在C:\Sambar路徑中,接下來要設首頁的路徑,假若首頁的路徑設在 C:\Sambar\Website\WWW\這個目錄,則這個Server所讀取的首頁index.html文件就會放在C:\Sambar\Website\WWW\目錄中,假設這是http://www.xxxx.com這個網址所在的伺服器,而網友只要在瀏灠器網址列鍵入http://www.xxxx.com這個網址時,伺服器就會送出C:\Sambar\Website\WWW\index.html這份文件出去,本例中,C:\Sambar\Website\WWW\ 就是絕對路徑,而http://www.xxxx.com/index.html就是這份文件(index.html)的相對路徑了。透過伺服器設定,它會Map在這個伺服器硬碟中的實際位址,這樣明瞭了嗎?
所以當網友鍵入相對路徑 http://www.xxxx.com/test.pl時,伺服器就會透過設定的Perl路徑去找 C:\Sambar\Perl40\Perl.exe 來讀取在絕對路徑中的 C:\Sambar\Website\WWW\test.pl這個Script,然後把讀取的結果送給網友看。
通常在同樣的根目錄下就不必再輸入磁碟機代號,所以只要設 /Website/WWW 醬就行了。
如果還是搞不懂,沒關係,教你一種偷懶的方式,就是在HTML課程中講到的「超鏈結路徑」表示法來解決;例如一份文件與你的Perl Script是放在同一個目錄中,則不需指定絕對路徑;如果文件是放在Script的上一個目錄中,則只要輸入「../文件名稱」即可。
以上所舉的例子不完全符合實際的狀況,也就是不見得完全正確,但為了讓網友容易導入Perl的情境,所以不要計較實際狀況到底是不是那樣。
|