a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Perl > 正文

Perl語言全面編譯(一)

2019-11-18 17:23:51
字體:
供稿:網(wǎng)友
簡 述
 
本文將詳細(xì)講述Perl的編譯方法,獻(xiàn)給所有熱愛、喜歡Perl的程序員們。 
Perl自從面世以來1.0版本到現(xiàn)今的5.6版本,一直都有編譯程序,主要因為國內(nèi)的中文資料很少,大多數(shù)人不愿意去看或者不懂得英文資料,所造成不知道器編譯方法。即使是很多Perl界高手也同樣有此類問題。Perl編譯方法五花八門,各種編譯方法都有其重要的意義和弱點。另一方面Perl編譯方法不能流行的原因是,本身Perl就是一個免費的東西,人們不希望Perl成為編譯的商品,但是在國內(nèi)也是因此而拖累了Perl的發(fā)展步伐。但在此我不贊成也不推崇Perl程序的編譯,Perl編譯有小些局限性,但是仍然可以完成所有任務(wù),想要達(dá)到良好的編譯效果,需要高超的編程技術(shù)和相關(guān)經(jīng)驗,重要的是對OOP(面向?qū)ο蟮某绦蛟O(shè)計)的了解,將會使得你的Perl程序更加易于編譯,運行速度更快,兼容性更廣等特性。 
以前我寫過Perl在可嵌入式技術(shù)方面技術(shù)文章。它的優(yōu)勢和其它嵌入語言無法比擬的兼容性,Perl不但擁有php的可嵌入HTML技術(shù),也同樣支持用PerlScript寫asp的。但是如果你希望你的程序可以編譯執(zhí)行,那么可嵌入式方法顯然是不可能的。我?guī)缀醪挥胑Perl、mod_perl等可嵌入式Perl HTML 頁,但是我更不贊成很多人把HTML置入程序之中,這兩種方法都有其好處以及壞處。我推崇模板方式的編寫方法,大家可能也用過模板方式,可能認(rèn)為它在頁面量處理方面有很多問題?但是,那些都是陳舊古老的方式,也是說明你并未精通Perl語言,采用模板方式調(diào)入HTML頁是相當(dāng)好的方法,幾乎可以達(dá)到所有可嵌入式技術(shù)的功效,也可以像HTML程序內(nèi)置方式的靈活操縱性。我覺得程序員和HTML制作員是不同的,如果我們采用ePerl、PHP、ASP,那么你就不是一個真正的程序員,那只是HTML技術(shù)的服務(wù)器處理部分罷了,真正的程序是程序本身,而不附帶任何其它特性。 
我認(rèn)為好的教學(xué)文章,應(yīng)該讓讀者充分了解內(nèi)容,充分?jǐn)U展層面。諸如編寫一個Httpd程序,有很多傳統(tǒng)的程序員根本不了解 http的通訊協(xié)議,即使講了很多內(nèi)容,但是仍然搞得半懂不懂。本文將會充分?jǐn)U展層面,讓讀者了解更多的技術(shù)資料,而不必看完本文后又要去尋找關(guān)聯(lián)技術(shù)資料。同樣國內(nèi)目前有很多技術(shù)性書籍,都是來自國外的譯本,但是很多譯者并非此技術(shù)專家,在翻譯的時候很多東西無法充分理解,帶來的時間上的障礙。我希望國內(nèi)的編程專家能夠?qū)懸恍┯杏玫募夹g(shù)文章和書籍,因為我看過很多國人自己寫的文章都容易理解和操作。但是問題在于都偏向與基礎(chǔ)教學(xué),目前急切地需要有更深層次的技術(shù)資料。 
   
內(nèi)容大綱: 
1) PerlApp和PerlSvc編譯方法 New! Easy! 
2) Perl2Exe 編譯方法 
3) PerlCC 編譯方法 
4) PerlCC之Bytecode 編譯解析法——Just Like java PRogram!  New! Cool! 
5) OOP面向?qū)ο蟮某绦蛑疄榫幾g而設(shè)計  
6) HTML模板編程方式——真正的WEB程序(Program)  Good! 
7) 聯(lián)合編譯以及實例  Advanced! 
   
說明:如何選擇閱讀以上內(nèi)容是很重要的,以上內(nèi)容并非適合各個階層的Perl程序員。PerlApp和PerlSvc適合在Windows2000環(huán)境下編程初學(xué)者和一般的Perl程序設(shè)計人員,Perl2Exe適合在非Windows和Windows95/98/Me 環(huán)境下編程初學(xué)者和一般的Perl程序設(shè)計人員。PerlCC適合與任何操作系統(tǒng)平臺,但是操作復(fù)雜,適合于中級程序員和高級程序員開發(fā)大宗商業(yè)化軟件(公眾客戶)使用。ByteCode是一種新型的編譯方式,類似Java,它需要Perl解析器的支持,但是它是靈活性最高的編譯方式,適合中級程序員和高級程序員開發(fā)大宗商業(yè)化軟件(服務(wù)商)使用。如果你希望你可以編寫出一個出色的Perl編譯的程序,那么你必須閱讀第4節(jié),它將告訴你如何使用面向?qū)ο蟮某绦蛟O(shè)計技術(shù)來實現(xiàn)Perl編譯程序的高效良好的開發(fā)環(huán)境和模式。 
   
第一節(jié) PerlApp和PerlSvc編譯方法
 
PerlApp和PerlSvc是ActiveState 公司開發(fā)的,它屬于 Active Perl Dev Kit(PDK)產(chǎn)品。本編譯方法只適合于Windows2000上運行,其它系統(tǒng)均無法正常使用,編譯程序必須是標(biāo)準(zhǔn)Perl和ActivePerl。 
PDK下載地址:http://ftp.tanshuai.net/pub/  ftp://ftp.tanshuai.net/pub/  
PerlApp和PerlSvc,前者是標(biāo)準(zhǔn)的應(yīng)用程序,后者是Windows2000的服務(wù)程序(類似與IIS,一開機(jī)就啟動的服務(wù)程序,而且無法中斷它的運行)。他們有兩種運作模式:依靠(Dependent)和獨立(Freestanding),“依靠”模式程序運行的系統(tǒng)上必須有Perl解析器和相關(guān)模塊,這樣的程序相對較小;“獨立”模式,Perl解析器等相關(guān)模塊都會完全嵌入在程序之中,這樣的程序在任何Windows2000操作系統(tǒng)上都可以順利運行,而不需要額外的支持,但是程序相對較大。 
使用方法: 
標(biāo)準(zhǔn)使用方法(“依靠”模式): 
perlapp <腳本名> 
這樣程序就會創(chuàng)建一個以腳本名命名的可執(zhí)行文件<腳本名.exe> 
“獨立”模式: 
perlapp(或者perlsvc) –f <程序名> 
定義輸出可執(zhí)行文件名: 
perlapp(或者perlsvc) –e=tanshuai.exe test.pl 
它將會把test.pl文件輸出的可執(zhí)行文件名改為“tanshuai.exe”。 
設(shè)置程序?qū)傩裕骸?br>perlapp(或者perlsvc) -i=<類表> <程序名> 
類表名 目標(biāo)項目 
Filenumber 文件號碼 
Productnumber 產(chǎn)品號碼 
Productname 產(chǎn)品名稱 
Legaltrademarks 合法商標(biāo) 
Filedescription 文件說明 
Originalfilename 原文件名 
Fileversion 文件版本 
Comments 注解 
Productversion 產(chǎn)品版本 
Companyname 公司名稱 
Internalname 內(nèi)部名稱 
Legalcopyright 版權(quán) 
 
這個時候有些人可能不大明白,這個是干什么用的。如果你曾經(jīng)編寫過Win32程序,那就會知道,它是Windows程序的版本說明(如圖1)。 



圖1 Perl.exe文件的版本說明 
名稱與數(shù)值用“;”分開。而且所有項目值都需小寫。 
清理PerlCtrl 的DLL: 
perlapp(或者perlsvc) –c <程序名> 
添加模塊: 
perl(或者perlsvc) –a=<列表> 
如:perlapp tanshuai.pl –a=IO:Socket;xml::Parser;Tanshuai::Http;MP3; 
這樣模塊IO:Socket,XML::Parser,Tanshuai::Http和MP3就被置入程序內(nèi)。 
Perl圖形界面: 
perlapp(或者perlsvc) –g <程序名> 
如果你的程序非命令行或者CGI,是T/K圖形界面的話,就需要采取這個命令。 
排除 Perl56.dll: 
perlapp(或者perlsvc) –x <程序名> 
Perl56.dll是PerlApp執(zhí)行的關(guān)鍵,但是如果你不希望他和你的程序在一起,你可以把它排除,另行安置,但是主意,一定要保證它的存在否則就無法正確運行 
添加額外文件: 
perlapp(或者perlsvc) –b=<文件列表> <程序名> 
如果你希望在程序內(nèi)部打開文件,請使用這個命令。 
如:open(FILE,“./PerlAPP.TXT“);@FILE=;close(FILE); 
這樣就必須打開“PerlAPP.TXT“文件,但是你如果把它置入程序,它將會在內(nèi)存中打開。(無法寫入) 
報告嵌入模塊錯誤: 
perlapp(或者perlsvc) -r <程序名> 
一些模塊無法嵌入,使用該命令可以得出相關(guān)信息。 
輸出詳細(xì)信息: 
perlapp(或者perlsvc) <程序名> -v 
如:perlapp tanshuai.pl –v 
輸出: 
Using myScript.pl for script name 
Input script name: tanshuai.pl 
Output exe name: tanshuai.exe 
Exe Mode: Perl Dependent 
Creating dependent executable 
   
解釋:PerlApp 和PerlSvc無法在Windows95/98/ME PerlApp使用的部分Win32 API函數(shù)未被支持。 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 天天艹逼 | 欧美精品被 | 国产精品一线二线在线观看 | 99免费在线视频 | 密室大逃脱第六季大神版在线观看 | 国产精品美女久久久久aⅴ国产馆 | 天天天天爽 | 欧美亚洲国产一区 | 1000部羞羞视频在线看视频 | 久久大 | 欧美三级在线播放 | 99久久婷婷国产综合精品 | 午夜爽爽| 国产极品福利 | 日本少妇xxxx软件 | 亚洲欧美另类久久久精品2019 | 国产精品免费在线 | 亚洲一级生活片 | 黄色网页免费观看 | 午夜99 | 日本免费黄色 | 一区二区三区播放 | 又爽又大又黄a级毛片在线视频 | 亚洲精品99 | 成人在线视频一区二区 | 超碰97在线人人 | 精品在线看| 欧美高清视频在线观看 | 午夜日韩在线 | 嫩草影院永久入口 | 日日搞夜夜操 | 一级电影院| 黄页网站在线免费观看 | 欧美二区在线观看 | 国产激情视频一区 | 99精品视频一区二区三区 | 中文字幕亚洲一区 | 免费国产黄网站在线观看视频 | 9999精品 | 日韩欧美在线中文字幕 | 天天综合7799精品影视 |