安装Embperl ppd,根据 http://perl.apache.org/embperl/pod/INSTALL.htm As last step you can install the Embperl ppd: + If you have Perl 5.8.x: ppm install http://theoryx5.uwinnipeg.ca/ppms/Embperl-1.ppd This is an Embperl 2 ppd, the "-1" at the end of the package name denotes that this ppd is for mod_perl 1.x. There is no Embperl 1 ppd for Perl 5.8.x (yet). + If you have Perl 5.6.x: - Embperl 1: www.shengfang.org ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/HTML-Embperl.ppd - Embperl 2: ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/Embperl.ppd ppm> install http://theoryx5.uwinnipeg.ca/ppms/Embperl-1.ppd ==================== Install 'Embperl-1' version 2.0b9 in ActivePerl 5.8.7.813. ==================== Downloaded 675673 bytes. Extracting 112/112: blib www.shengfang.org Files found in blib\arch: installing files in blib\lib into architecture depende nt library tree The library libxml2.dll is needed to complete the installation, and should be placed in a directory somewhere in your PATH environment variable. I can fetch and install this for you, if you don't already have it. Fetch libxml2.dll? [yes] 如果此时按下 CTRL+C,结果会提示中断进程,但是最后问题是DOS窗口无法退出,输入EXIT也都是出现,是否中断BAT?! 修改 HTTPD.CONF www.shengfang.org LoadModule embperl_module "O:/php/perl/site/lib/auto/Embperl/Embperl.dll" 结果 www.shengfang.org Syntax error on line 177 of O:/php/Apache Group/Apache2/conf/httpd.conf: Cannot load O:/php/perl/site/lib/auto/Embperl/Embperl.dll into server: \xd5\xd2\ xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3 Note the errors or messages above, and press the <ESC> key to exit. 6.... 搞了半天也没有办法解决~~~~~ http://203.64.183.130/~yst/ruby/PART1/web-db-4.htm 第四課 Embperl: 將Perl嵌入HTML Perl/ASP和Embperl ? 前面在 Perl/ASP中己學過如何將 Perl敘述嵌入HTML之中,那Embperl又有什麼特別的地方? Embperl 可在CGI和ASP mode執行﹐也可在命令提示字元下執行﹐方便除錯? Embperl能自動辨識像Table等標籤﹐對顯示資料庫查詢結果非常方便﹐省去for/while迴圈 Embperl 的安裝 【準備工作】確認先前所安裝的Perl的執行檔之路徑已加入環境變數PATH之中。 打開命令提示字元視窗﹐輸入 ppm 命令﹐輸入 search Embperl﹐查看所搜尋到的Ebperl之版本全名﹐然後輸入 install ?所搜尋到Ebperl版本全名?﹐(例如﹐Embperl-1)﹐等安裝完成後輸入exit 結束ppm﹐再輸入exit關閉令提示字元視窗。 在Apache的設定檔httpd.conf最後面(只要在載入mod_perl之後即可)輸入下列指令: LoadModule embperl_module Perl的安裝路徑/site/lib/auto/Embperl/Embperl.dll 另外在與httpd.conf同目錄的 perl.conf檔案後面附加下列的指令 PerlModule Embperl AddType text/html .epl <Files *.epl> SetHandler perl-script PerlHandler Embperl Options ExecCGI </files> www.shengfang.org 存檔後﹐重新啟動Apache即可。以後Embperl的檔案就以 .epl為副檔名。 Embperl 的標籤 Embperl和 Perl/ASP基本上很像﹐就是在HTML檔案中嵌入Perl的敘述﹐只是標籤不太相同﹐Embperl的功能較多樣化。 Embperl的 [- ... -] 和Perl/ASP的 <% ... %> 一樣﹐標籤裡面的敘述會被執行。 Embperl的 [+ ... +] 和Perl/ASP的 <%= ... %> 一樣﹐標籤裡面的運算式會被顯示出來。 Embperl的 [! ... !] 內的敘只會執行一遍﹐常用在定義函數方面。 Embperl還有些所謂的 Meta Command是放在 [$ . . . $] 之間﹐用來做流程控制﹐如 if-else, for, while, sub(函數) 等等﹐方便HTML的產生。當然我也可以不用Meta Command﹐直接在 [- ... -] 之中利用Perl的流程控制敘述來達成類似效果。 Embperl最有趣的地方之一就是它會辨認HTML標籤﹐像有重複性的HTML標籤如 <OL>, <UL>, Table中的<tr> <td>, 和表單中的Select的OPTION選項等等﹐Embperl會自產生一個counter (也像c++的Iterator)﹐我們可省去for或while迴圈。這種功能你在PHP或Perl/ASP內看不的﹐(IIS的JScript, PerlScript和 VB也沒有)﹐你只能在像ColdFusion這類要錢的網頁開發工具上看到這功能。 既生瑜,何生亮? Embperl和Perl/ASP都是以Perl語言為底的工具﹐而Perl/ASP功能好像少很多﹐那Perl/ASP的存在有何意義? 其實不然﹐Perl/ASP的程式不只在Apache上可以用﹐它也可在IIS的PerlScript使用。但Apache可在Windows和Linux等各種平台上架站﹐速度快﹐功能又多﹐誰又會去想IIS呢。若是你這樣想的話﹐Embperl的確是較吸引人! Embperl還有一大堆功能﹐我們想快速上手﹐先學一些基礎的技術即可﹐暫且不管其它複雜的功能。對有意深入的人﹐可到Embperl總站取得多資訊。 和Embperl角色類似的免費的網頁開發工具還有 Mason, AxKit等等﹐有興趣的人可參觀 Apache的Perl網頁參觀﹐感受一下這些在開放原始碼(Open Source)的政策下所產生出來的智慧結晶。技術透明化﹐開放交流﹐只要肯用心學習的人﹐都可以學到專業級的技術。這絶非是少數自私和壟斷的軟體企業所能提供的。 表單參數的處理 Embperl表單參數基本上用下列兩個物件 $fdat{ '表單參數名稱' }: 其中 %fdat是一個Hash table at ffld : 是一個含有所有表單參數名稱的陣列 範例 1 輸入下列含有表單的網頁檔(htm)存入 C:/Apache/Apache/htdocs/Teach/embperl/ 目錄下﹐檔名取做 ex501 dot htm <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5" /> </head> <body> <form method=post action=ex501.epl> 輸入姓名: <input type=text name=user> <p> <input type=submit value="繼續"> </form> </body> </html> 輸入下列Embperl檔存入 C:/Apache/Apache/htdocs/Teach/embperl/ 目錄下﹐檔名取做 ex501.epl <CENTER> <H1> 歡迎 <U> [+ $fdat{ user } +] </U> 進入Embperl的世界! </H1> <CENTER> 自己瀏覽一下吧! 字体:大 中 小 |