何謂 HTML

HTML 的全名是「超文字連結標示語言」(Hypertext Markup Language)。它所包括的程式碼集(稱為標籤)是用於控制 Web 瀏覽器顯示文件的方式,通常的 Web 瀏覽器有 Netscape NavigatorCommunicator Microsoft Internet Explorer。用 HTML 標籤進行格式化的文件稱為 HTML 文件,例如您現在正在檢視的這一頁就是 HTML 文件。HTML 文件必須具有正確的格式才能被瀏覽器軟體正確識別和解釋。基本格式是:

<HTML>
<HEAD>
<TITLE>Page Title</TITLE>
</HEAD>
<BODY>
這裡是文件的主體部份。
</BODY>

</HTML>

 

何謂Java?

 

 

 

 

  簡單的說,Java是一個可以在個別獨立的電腦上或透過瀏覽器(例如 Internet Explorer 或 Netscape)來解釋執行的物件導向程式語言

  Java 與C++ 語言習習相關,而C++是繼承C語言而來的,Java 的許多特性也都是繼承這兩種語言而來的。為了要讓我們學習 Java 上更為方便,它放棄了C 和C++ 語言中較不常用的及不好用的部份,例如Java不使用指標、多重繼承和 goto 敘述。所以相對而言是比較安全、簡單和容易使用的語言。  

1991年4月,昇陽(Sun)公司在內部成立一個Green的研究計畫,主要是在發展一個消費性電子產品 的控制軟體,當時所使用的語言是C++,但是C++太過於複雜和缺乏其安全性。所以計畫主持人James Gosling先生便利用C++當做基石,另行開發一套新的程式語言,並命名為Oak

  後來發現另有其它程式語言已經命名為Oak,所以該計畫的成員便重新討論該程式語言的命名,當時他們在咖啡館正喝著印尼爪哇島出產的咖啡,有一個人靈機一動說就叫 Java 怎樣,並得到了其他人的贊賞,於是他們就將該語言命名為Java。

 

Java Applet與應用程式

 

 

 

 

    Java可以用來建立兩種型態的程式:應用程式Applet。應用程式是一種可以在你的電腦的作業系統之下執行的程式。也就是說,Java所建立的應用程式跟用CC++所建立的應用程式很相似。當你使用Java來建立應用程式時,Java與其他的電腦語言並沒有什麼不同。Applet是一種設計經由網際網路來傳送的用戶端(Client)應用程式,而且是由與Java相容的網頁瀏覽器或透過Appletviewer來執行

  Applet事實上是一個小型的Java應用程式,動態的經由網路下載,就跟影像、聲音檔,或影片檔一樣。而和這些媒體檔案最大的不同點在於Applet是一個較具聰明的程式,它可以根據使用者輸入的資料做出反應,並且動態更改的程式,而不僅僅只是重覆執行相同的動畫或聲音。

 

■簡介-JavaScript語言跟Java語言有什麼不同?

Javascript語言是一種直譯式語言,別以為JavaScript語言跟Java語言一樣,它們除了都很適用於網路的用途外,兩者大大不同。 JavaScript原名叫LiveScript,他的能力沒有Java那麼強,但是可以配合HTML的程式,設計出很有趣的動態網頁,它的語法也比較簡單,容易學習。一般而言,「script」語言代表一種簡單的程式,可以用來完成一些簡單的任務,而JavaScript則是承襲了Java與Perl的語法,用來處理一些畫面的效果。如果你要把網頁弄到很棒,那麼JavaScript就是必學的課程喔!Javascript程式是執行在客戶端,Java程式是執行在伺服器的,兩者互相搭配會是不錯的搭檔。

雖說簡單,但他是一個全能的程式語言,如果拿來做不容易的事情時,可能會因為寫程式的過程而挫敗。筆者寫這張網頁時已經到1.2版嚕!

JavaScript是跟HTML混合在一起的程式,可以在頁面上做出即時的特效,它會隨著網頁下載到你的電腦,然後瀏覽器自動執行跟HTML程式混在一起的JavaScript程式,做出特效來。 除此之外,因為瀏覽器的版本與廠商不同,所以JavaScript的相容性要特別注意,除非你用的是最新版本的瀏覽器,否則可能常常會看到畫面上出現錯誤的訊息,出現一堆奇怪的網頁。並且有些東西在IE與NS執行結果並不太一樣喔!所以本篇教學裡會注明,可以用在哪個瀏覽器。

VBScript介紹

VBScript與Basic語言有密切關系。如果你熟悉BASIC,你將會發現VBScript很容易學習和使用。VBScript是Microsoft Visual Basic的簡化版本。

VBScript是一種腳本語言。這意味著這種語言比BASIC語言的成熟版本容易使用又難於使用。編製簡單的程式時,腳本語言是容易使用的。腳本語言的句法比較簡單。但是,簡單的句法也使開發大的應用程式變得很困難。

你可以在HTML文件中直接嵌入VBScript腳本。這使你能夠擴展HTML,使它不僅僅是一種頁面格式語言。帶有VBScript腳本的網頁在每次下載到瀏覽器時都可以是不同的,而且可以對會員的操作作出反應。

VBScript是Active Sever Pages的缺省語言。你也可以在ASP網頁中使用其它腳本語言,如Jscript,Perl,或者REXX(由IBM UK實驗室的Michael Cowlishaw所創的一種語言)。

客戶端和服務器端編程語言

VBScript既可以作為客戶端編程語言,也可以作為服務器端編程語言。客戶端編程語言是可以由瀏覽器解釋執行的語言。Java和Jscript/JavaScript也可以作為客戶端編程語言。當一個以這些語言中的任意一種編製的程式被下載到一個兼容的瀏覽器中時,瀏覽器將自動執行該程式。

客戶端編程語言的優點是瀏覽器完成了所有的工作,這可以減輕服務器的負擔。而且客戶端程式運行起來比服務器端程式快得多。當一個瀏覽器的會員執行了一個操作時,不必通過網絡對其作出響應,客戶端程式就可以作出響應。

但是,一般來說,可以解釋VBScript腳本的瀏覽器只有Microsoft Internet Explorer。例如Netscape Navigater將忽略VBScript腳本。這意味著目前沒有充分的理由把VBScript作為客戶端編程語言。你不應該花費時間來編寫只有少數瀏覽器可以解釋的程式。

注意

Internet Explorer和Netscape Navigater都可以解釋JavaScript程式。

注意

如果你在開發Internet應用程式,你也許想用VBScript作為客戶端語言。而對於Intranet,你也許要對你所使用的瀏覽器進行一定的控製。

VBScript也可以作為服務器端編程語言。服務器端編程語言是在服務器上執行的語言。服務器為一個站點提供文件,而瀏覽器接收這些文件。服務器端編程語言執行站點主機上的所有操作,所有的功能要你自己來實現。

VBScript作為服務器端編程語言的好處是VBScript不受瀏覽器的限製。VBScript腳本在網頁通過網絡傳送給瀏覽器之前被執行。Web瀏覽器收到的只是標準的HTML文件。

當你創建ASP網頁時,你將用VBScript作為服務器端編程語言。

介紹JScript

JScript是微軟的Java Script語言的開發工具,如果你已經掌握了Java Script,你對本章講述的內容會非常熟悉,除了一些微小的差別,JScript與Java Script機乎完全相同。

JScriptJava不是同一種語言,雖然JScript的名字中含有一個?,它會使人們產生一種強烈的感覺,以為這兩種語是非常相似的,然而Java是一種真正的編程語言,而JScript只是一種腳本語言。

JScript可以用來完成VBScript所能完成的任何腳本任務。

然而在某些特定情況下,有理由使用JScript 來代替VBScript。即使機乎所有的Active Server Pages腳本都可用VBScript也可用JScript 來寫,但某些腳本用某種語言寫會比用另一種來寫要簡單得多。這兩種語言之間還存在一些重大的差別。

更進一步說,可以混合使用兩種腳本語言來編寫你網點上的Active Server Pages。你可以用JScript來寫某些Active Server Pages,而用VBScript來寫另一些,這取決於哪種語言更合適。而且,你可以在同一個Active Server Pages中加入分別由兩種語言寫的腳本。

簡而言之,創建Active Server Pages時了解一些JScript 不會讓你吃虧,由於你的腳本變得越來越復雜和專業化,你可能會慶幸Microsoft為你提供了又一個對腳本語言的選擇機會。

客戶端和服務器端編程語言

JScript 可用作客戶端或服務器端的編程語言。客戶端編程語言可以在諸如Netscape Navigator 或 Microsoft Internet Explorer 的瀏覽器上得到解釋和執行。另一個客戶端編程語言的例子是Java,當用這些語言寫的程式被兼容的瀏覽器讀入時,瀏覽器自動執行這個程式。

客戶端編程語言的有利之處在於瀏覽器處理了全部工作,這就減輕了服務器的負擔。客戶端程式運行起來也比服務器端程式快得多。當瀏覽器的會員做出某種行為時,對此的反應不需通過網絡進行傳輸,客戶端程式可對它作出反應。

JScript用作客戶端編程語言是非常好的,與VBScript不同,JScript創建的客戶端腳本能被現有的大部分瀏覽器識別。Netscape Navigator 和 Internet Explorer都可以解釋和執行包括JScript 的HTML文件。

然而,與VBScript相同,JScript 也是服務器端編程語言。服務器端編程語言在提供網點服務的服務器上執行,而不是在接收網頁的瀏覽器上執行。服務器端編程語言在你的網點計算機上完成所有這些工作,承受所有的負擔。

使用JScript 作為服務器端語言的好處是腳本與使用的瀏覽器無關。你的網頁甚至能與不把JScript 作為各戶端語言的舊版的網絡瀏覽器兼容,這是因為在網頁通過Internet傳送到瀏覽器之前腳本就已經被處理了,網絡瀏覽器接收到的只是普通的HTML文件。

當你建立Active Server Pages時,你將把JScript作為服務器端編程語言。

Active Server Pages 是什麼?

Active Server Pages實際上是將標準的HTML文件拓展了一些附加特征,Active Server Pages象標準的HTML文件一樣包含HTML對象並且在一個瀏覽器上解釋並顯示。任何你可以放在HTML中的東西--Java applets,閃爍字符串,客戶端腳本,客戶端ActiveX控件等等你都可以放在Active Server Page中。因此,一個Active Server Page有如下四個重要特征來使之具備很強的通用性。

· 一個Active Server Pages可以包括服務端腳本,利用VBScript和Jscript來創建Active Server Pages,.利用Active Server Page中的服務端腳本,你可以創建動態內容的網頁,舉一個最簡單的例子,你可以讓網頁在一天的不同時間顯示不同內容。

· 一個Active Server Page提供了一些built-in對象。利用這些Active Server Page中提供的built-in對象,你可以使你的腳本更加強大﹔這些對象會允許您從瀏覽器中接受和發送訊息。例如,利用request對象,你可以將會員在HTML form中的訊息接受到並在一個script中來響應它。

· 一個Active Server Page 可以用另外的元素來擴展。Active Server Pages本身就是來源於相當數量的標準服務端ActiveX元素,這些組件允許你做諸如依據瀏覽器能力進行不同顯示以及在瀏覽器內包含計數器的工作。

標準的ActiveX組件非常有用,不過,你並不會被此局限,你可以輕松創建屬於你自己的附加ActiveX組件。這意味著你可以不加限製的拓展你的ActiveX組件。

· Active Server Page可以和諸如SQL Server這樣的資料庫進行挂接,利用一些特別的對象集合,Active Data Object(ADO),你就可以在你的Active Server Page 中使用SQL語言。

再次重申,這是Active Server Page一個非常強大的功能所在,線上商務以及線上沙龍等各種非常高級的,動態更新的站點都需要資料庫的支持,而且需要隨資料庫內容的更新而自動更新,這樣,你就可以利用Active Server Pages自己建立很多類似的高級站點。

以上四個特性對Active Server Page進行了限定,Active Server Page就是由Server端腳本、對象以及組件拓展過的標準首頁。利用它,你的首頁就可以包含動態內容。

Active Server Page的講解前提是你使用的是微軟的Internet Information Server(IIS)作為網站Server軟件,當然,你也可以利用許多其他的Server,例如,針對於win95,win97,win98的Personal Web Server(PWS)以及針對於NT的Peer Web Server。甚至微軟家族之外的NetScape Enterprise and FastTrack Server(這可不是瀏覽器),Lotus Domino and Go Servers, ORellys Website,等等。

 

一、ServletJSP概述

一、ServletJSP概述        : 仙人掌工作室

   1.1 Java Servlet及其特點

ServletJava技術對CGI編程的回答。Servlet程序在服務器端運行,動態地生成Web頁面。與傳統的CGI和許多其他類似CGI的技術相比,Java Servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節省投資(更重要的是, Servlet程序員收入要比Perl程序員高:-):

高效。


在傳統的CGI中,每個請求都要啟動一個新的進程,如果CGI程序本身的執行時間較短,啟動進程所需要的開銷很可能反而超過實際執行時間。而在Servlet中,每個請求由一個輕量級的Java線程處理(而不是重量級的操作系統進程)。
在傳統CGI中,如果有N個並發的對同一CGI程序的請求,則該CGI程序的代碼在內存中重複裝載了N次;而對於Servlet,處理請求的是N個線程,只需要一份Servlet類代碼。在性能優化方面,Servlet也比CGI有著更多的選擇,比如緩衝以前的計算結果,保持數據庫連接的活動,等等。

方便。

Servlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單數據、讀取和設置HTTP頭、處理Cookie、跟蹤會話狀態等。

功能強大。

Servlet中,許多使用傳統CGI程序很難完成的任務都可以輕鬆地完成。例如,Servlet能夠直接和Web服務器交互,而普通的CGI程序不能。Servlet還能夠在各個程序之間共享數據,使得數據庫連接池之類的功能很容易實現。

可移植性好。

ServletJava編寫,Servlet API具有完善的標準。因此,為I-Planet Enterprise Server寫的Servlet無需任何實質上的改動即可移植到ApacheMicrosoft IIS或者WebStar。幾乎所有的主流服務器都直接或通過插件支持Servlet

節省投資。

不僅有許多廉價甚至免費的Web服務器可供個人或小規模網站使用,而且對於現有的服務器,如果它不支持Servlet的話,要加上這部分功能也往往是免費的(或只需要極少的投資)。

 
   1.2 JSP及其特點

JavaServer PagesJSP)是一種實現普通靜態HTML和動態HTML混合編碼的技術。

許多由CGI程序生成的頁面大部分仍舊是靜態HTML,動態內容只在頁面中有限的幾個部分出現。但是包括Servlet在內的大多數CGI技術及其變種,總是通過程序生成整個頁面。JSP使得我們可以分別創建這兩個部分。例如,下面就是一個簡單的JSP頁面:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
HTML
HEAD><TITLE>歡迎訪問網上商店</TITLE></HEAD
BODY
H1>歡迎</H1
SMALL>歡迎,
!-- 首次訪問的用戶名字為"New User" --
% out.println(Utils.getUserNameFromCookie(request)); %
要設置帳號信息,請點擊
A HREF="Account-Settings.html">這堙/A></SMALL
P
頁面的其餘內容。.
/BODY></HTML

   下面是JSP和其他類似或相關技術的一個簡單比較:

JSP
Active Server PagesASP)相比

MicrosoftASP是一種和JSP類似的技術。JSPASP相比具有兩方面的優點。首先,動態部分用Java編寫,而不是VB Script或其他Microsoft語言,不僅功能更強大而且更易於使用。第二,JSP應用可以移植到其他操作系統和非MicrosoftWeb服務器上。

JSP
和純Servlet相比

JSP並沒有增加任何本質上不能用Servlet實現的功能。但是,在JSP中編寫靜態HTML更加方便,不必再用 println語句來輸出每一行HTML代碼。更重要的是,借助內容和外觀的分離,頁面製作中不同性質的任務可以方便地分開:比如,由頁面設計專家進行HTML設計,同時留出供Servlet程序員插入動態內容的空間。

JSP
和服務器端包含(Server-Side IncludeSSI)相比

SSI是一種受到廣泛支持的在靜態HTML中引入外部代碼的技術。JSP在這方面的支持更為完善,因為它可以用Servlet而不是獨立的程序來生成動態內容。另外,SSI實際上只用於簡單的包含,而不是面向那些能夠處理表單數據、訪問數據庫的真正的程序。

JSP
JavaScript相比

JavaScript能夠在客戶端動態地生成HTML。雖然JavaScript很有用,但它只能處理以客戶端環境為基礎的動態信息。除了Cookie之外,HTTP狀態和表單提交數據對JavaScript來說都是不可用的。另外,由於是在客戶端運行,JavaScript不能訪問服務器端資源,比如數據庫、目錄信息等等。

 

何謂Flash?

 

 

 

 

這是 Marcromedia 所開發出來的一種技術,利用其 Flash 軟體,可以製作出融合動畫,音效,圖形的檔案,並放到網頁中,這麼說或許對完全沒接觸過的人可能還有點模糊,不過,你不妨連結到 Marcomedia Flash 網站一瞧,映入眼簾的,你馬上就知道何謂 Flash 作出來的網頁,以及為何它會受到如此歡迎了。

Flash 與 DHTML(動態網頁)、Java 相同之處在於他們都能強化網頁的互動性,但與 DHTML或Java 的最大不同是,使用 Flash 完全不需要任何程式背景;同時它又可以製作非常強大的電影動畫放在網頁上。製作動畫必須以「格」為單位(frame),一般電影是每秒24格,video 每秒30格,網頁上的動畫約為每秒12格就夠了。雖然如此,一支30秒的動畫還是得作上 360 個 frame 的圖檔。而有了 Flash 的協助,製作網頁動畫則變得輕而易舉。看看 NokiaThe Control Group 的效果吧。

 

 

利用 PhotoImpact 製作的圖畫,可以怎樣應用到 Flash 動畫中?

 

  只要把用 PhotoImpact 製作的圖畫儲存成 Flash 可讀取的格式,例:jpeg、gif、pngwmf等,便可從「功能表列」的「Import」插入到 Flash 動畫中。

 

CGI&Perl

 (本文摘錄於http://ind.ntou.edu.tw/~dada/cgi/)

這間小木屋已經荒廢了很久,一直懶的去整理它,以至於破破爛爛,乏人問津:p 其實我一直想寫一些有關www的文件放在我的homepage中,可是一直沒空。這次趁著暑假著手寫了一些有關CGI與Perl的文件資料,就把它拿出來充充場面吧。網路上有不少文件都是教人怎麼寫HTML,甚至java script亦所在多有,但是卻鮮少有人提到CGI程式的寫作,頂多只是show出一些CGI程式的應用與範例而已。有鑑於此,我就把我寫CGI程式的經驗提出來跟大家分享,希望對那些想學CGI卻不知從何下手的人有所幫助。

CGI簡介

始的HTML語言是設計用來展現靜態的資料,它讓人使用一種簡單的語法展現出豐富的多媒體資料,就像廣告看板一樣。由於WWW具有相當大的商業用途,因此推出後大受歡迎。可是單純的靜態展示好像缺少了什麼? 如果使用者需要的資料具有時效性,必需時常更新,這時該怎麼辦呢? 又或者你想留下使用者的資料,讓你的網頁能跟使用者達到互動的效果,這時又該如何? 由於上述種種需求,於是就誕生了CGI這東東。

CGI是Common Gateway Interface的縮寫,中文翻做『共通閘道介面』。它是一種標準介面程式,能讓你的網頁跟WWW server溝通,達到跟使用者互動的效果。而且透過CGI程式,可以讓你動態的產生網頁,秀出server上的最新資料。當你link到一個CGI物件時,你取回的文件並非是一份靜態資料,而是一個藉由程式動態產生的HTML資料流。傳回來的資料也許分分秒秒都在更改,或者針對使用者的特殊查詢而有不同的反應,例如股票市場行情等等。簡單來說,CGI程式就是能夠動態產生WWW網頁,並讓一般使用者經由WWW取用現存在傳統資訊系統內的資料。

先,你得認清一個事實:如果資料是天天更新,你絕對不可能寫一個很大的HTML文件包含所有的這些更新資料。萬一放在WWW上的資料是分分秒秒都在變動的,那麼利用程式自動根據資料產生HTML文件顯然是你唯一的選擇。第二,CGI程式可以根據使用者輸入的要求自動產生HTML格式的資料。因為輸入資料是由WWW server負責接收,並非CGI程式本身,故得找出一個有效率的方法,來做使用者輸入參數和產生HTML文件程式間的溝通工作。 CGI本身制訂的標準有提到可以藉由環境變數來達成這個目的,而且CGI程式也有能力取得現存在各類資料庫裡的資料。這就是為什麼我們稱之為Common Gateway Interface,因為CGI程式通常就像橋樑或閘道一般,溝通著非WWW系統和WWW server (這和下面所說的Web server、HTTP server是一樣的,都是指一個架有HTTPd的伺服器)。

個例子來說,你是某家證券公司的大老闆,你的公司裡已經有一個相當完善的資料庫,裝滿了過去所有的股票價格資料,現在你想經由WWW提供這些資料給你的顧客們做參考,但是你的資料庫系統根本就不懂HTTP這種格式,這時你就需要一個閘道程式,當作股票價格資料庫和HTTP server間的橋樑通道,於是CGI程式就誕生了。它可以取得HTTP使用者送來的查詢指令,轉換成現存資料庫可以了解的指令,用以取得資料後,再將資料轉換為HTML格式,最後再經由HTTP server傳回給使用者,秀在使用者的瀏覽器上。

據上述這些要求,CGI程式的確可以用任何程式語言來撰寫,只要該語言具有讀寫檔案的能力且該資料檔可被存取即可。不過這也表示寫程式時需要注意安全性的問題,以免資料被使用者有意無意的破壞,否則到時候就真的欲哭無淚了。

下來我要說一些比較理論性的東西,但卻是寫CGI程式必備的基本知識。一部Web server上一定會跑起HTTPd,這是HTTP的server程式(daemon)。由於HTTPd牽涉到系統設定問題,所以除非你是系統管理者或是自己架一台server跑起HTTPd,否則一般使用者是沒有權跑自己寫的CGI程式的。不過現在另外有個程式叫CGI wrap,它可以透過一種特殊的方法讀取userhome/www/cgi-bin裡的CGI程式,並且以使用者的身份來執行這個CGI程式,所以不虞有被破站的危險。 ind.ntou.edu.tw這部Email and Web server就有裝上CGIwrap,並且全校師生都有帳號,是大家練習CGI程式的好去處(相關的使用方法請Email to root@ind.ntou.edu.tw)。

OK! 現在我們假設你的Web server已經設置好執行CGI的環境,並且你有存取cgi-bin目錄的權限 (至於HTTPdTCPwrap的安裝與相關設定並不在本篇文章的討論範圍內,有興趣者請自行到各大bbs站相關佈告欄的精華區找找,一定可以找到你所需要的答案)。當使用者用瀏覽器link到一個CGI程式時,瀏覽器會透過HTTP這個通訊協定,送出一個請求(require)給遠端(remote)的Web server,Web server就會跑一個HTTPd process,這個process會去找指定的目錄下有沒有這個CGI程式,如果有的話HTTPd會啟動一個child process來跑這個CGI程式,也因此繼承了HTTPd所有的環境變數設定。這也就是說使用者所輸入的要求會經由HTTP通訊協定傳送到Web server的HTTPd,再經由環境變數或標準輸入裝置(STDIN)傳遞給CGI程式。CGI程式相關的環境變數列表於下:

Environment Variable

Description

SERVER_SOFTWARE

The type of Web server running the CGI program

SERVER_NAME

The name of the Web server host

SERVER_PORT

The port address of the Web server

GATEWAY_INTERFAC

The version number of the CGI standard

SERVER_PROTOCOL

The version of HTTP the server is running

REQUEST_METHOD

The method of requesting data specified by the client

QUERY_STRING

Request parameters supplied by the client

SCRIPT_NAME

The resource locator of the CGI program

REMOTE_HOST

The name of the client host

REMOTE_ADDR

The Ipaddress if the client host

AUTH_TYPE

Authorization method,often blank

REMOTE_USER

The name of the user provided by the client

REMOTE_IDENT

An identify fot the client user,not often available

REFERER_URL

How the client got here

HTTP_ACCEPT

The MIME types accepted by the client

HTTP_USER_AGENT

The client browser type

CONTENT_TYPE

The MIME type of data supplied with the request

CGI程式接收到使用者的需求,經過一番處理,然後會將標準輸出(執行結果)傳送給HTTPd,再經由HTTP交給客戶端(client)的瀏覽器秀出來。所以CGI程式在標準輸出上的執行結果必須要符合HTML格式,而在文件的排版方面當然也要依HTML格式來寫,這一點要特別注意一下。

Perl語言簡介

Perl是什麼東西呢? 它是Practical Extraction Report Language等字的縮寫,是一種能掃視任意文字檔,並且能從中取出資訊製成報表的解譯語言(Interpreter)。如果你懂UNIX的話,它的目的就是用來取代UNIX原有的sedawk與shell script的組合,用來匯集資訊、產生報表的一個工具語言(程式)。Perl的作者是Larry Wall <lwall@netlabs.com>。他曾經貢獻過好幾個很有用的Public Domain程式給大家使用,包括patch和rn。他設計Perl時的哲學是以實用為第一優先(所謂的實用就是語言容易使用、有效率,而且完整),而不是設計一個看起來很漂亮的語言(漂亮就是程式非常的小,語法幽雅,而且只由最少的語法基本元素構成),所以只要你學上手了,你就會深深的喜歡上Perl的實用性和方便性。

Perl包含了C、sedawksh這幾個工具最好的特色,而且主要的語法很接近C語言,對原本熟悉C語言的人來說非常容易上手。就我個人的經驗,除了C以外,如果能再懂shell script的語法是最好不過了,因為Perl中一些符號的使用和shell script是一致的。當然如果又懂得awksed那就更好了。Larry Wall說過一句話:「Perl是懶人用的工具」(於我心有戚戚焉^_^)。如果Perl不是比其它語言更好更簡單更容易上手,恐怕很少人願意去學習新的程式語言。

由於Perl的特性,容易處理字串參數的傳遞,自然成了某些特殊用途的新寵,尤其是CGI,彷彿Perl天生是為了CGI而設計的! 事實上CGI本身定義是和使用的程式語言種類無關的,你可以用C、Fortran、甚至Visual Basic、Delphi來寫CGI程式。那為什麼大家現在都採用Perl呢? 原因有下面幾點: