亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

PerlCGI程式寫作常問問題集(2)Modules(模組)

2019-11-18 17:23:34
字體:
來源:轉載
供稿:網友

 
2.0-Modules(模組)

--------------------------------------------------------------------------------

Q2.1:我是不是該用PerlCGImodules*來寫CGIscripts?自己做不是比較容易嗎?
【譯者】CGImodules在此指CGI.pm及其他CGI::*的模組;詳見Q2.4。

這完全取決於您要做的是什麼。CGImodules較適合重量級的CGIscripts。如果是簡單的scripts的話,自己做或者是用CGILite這個模組會簡便許多。如果您真的愿意,您甚至可以用舊的Perl4cgi-lib.pl這個library*。

【譯注】作者TomC.之所以這麼說是因為他基本上不贊成使用cgi-lib.pl,有興趣的讀者可以看他寫的WhyIamnotfondofcgi-lib.pl(為什麼我不欣賞cgi-lib.pl)。


--------------------------------------------------------------------------------

Q2.2:如何知道某個module該怎麼個用法?
大多數modules的使用說明是直接嵌在程式里的*。如果是這樣的話,您可以用pod2man這個script來閱讀使用指南:

pod2textname_of_module.pm
pod2manname_of_module.pm|nroff-man|more

【譯注】如果您在*.pm檔中看到``=head1''、``=cut''這類的東西便是顯示使用說明有附在里頭。這是LarryWall設計的POD(PlainOldDocument)格式。詳見perlpodmanpages。


--------------------------------------------------------------------------------

Q2.3:有哪些Perl4的CGI或WWW的libraries?
最廣為使用的Perl4CGIlibrary是SteveBrenner的cgi-lib.pl。



--------------------------------------------------------------------------------

Q2.4:有哪些給Perl5使用的CGImodules?我該用哪個?為什麼?
CGI.pm*
這個很棒的module在功能上和部分CGI::*modules相重疊。如果您不想和多重modules打交道的話,您可以只用這一個。我們等一下在後頭會給您看一個用CGI.pm來替CGIscripts除錯的實例。
此外,Lincoln(LincolnStein;CGI.pm的作者)還寫了一本討論Web和CGI非常好的書,叫HowToSetUpandMaintainaWorldWideWebSite。

【譯者】建議讀者多使用CGI.pm。CGI::*已經有很長一段時間沒有更新了,而CGI.pm則不斷的有改良的新版推出,并已加入對FastCGI的支援,因此對FastCGI的使用者也相當方便。此外,mod_perl(Apache的perlmodule)中所附的CGI::XA,也是由CGI.pm改進而來的。CGI.pm讓使用者免除自己做低階資料處理(如印HTTP標頭、替form,cookies資料解碼等)的麻煩。

CGI::*模組套件
這些模組原先大多是由TimBunce所寫,現在則由LincolnStein來負責維護。它們的功能包括了幫您產生及處理form,替CGI程式除錯,以及在不同的forms之間維系一個狀態值。
CGILite
這個輕量級的module是CGI::*modules之外的另一個選擇。它可算是在老舊的cgi-lib.pl之上改良、加料後的產物。
以上叁者均有能力處理multipartform資料(即上傳)。


--------------------------------------------------------------------------------

Q2.5:為什麼這麼多perlCGIlibraries都是object-oriented(物件導向)的?我對用物件導向來寫程式一竅不通。難道就沒有簡單一點,給不會物件導向的人使用的libraries嗎?物件導向有多難?
其實使用物件導向的modules并不難。先去看看TomChristiansen的EasyIntrotoUsingPerlObjects(簡單介紹如何使用Perl物件)吧。

前頭提到的CGImodules用起來真的是很容易!這里有一個用CGILite印出form資料的實例*:

【譯者】CGI.pm的使用說明中有更多范例可供參考。

#!/usr/local/bin/perl-w

useCGI_Lite;

$cgi=newCGI_Lite;
趖a=$cgi->parse_form_data;

PRint"Content-type:text/plain","/n/n";

foreach$key(keys趖a){
print$key,"=",$data{$key},"/n";
}

exit0;

要注意的是,即使您機器上的Perl不是您裝的(您不是系統管理者),或是您權限不夠無法將這些modules和其他的Perllibrary檔案安裝在同一個地方,您還是可以使用這些modules的--只要將它們擺在一個自己方便的地方,然後在您的script開始處加上*:

BEGIN{
unshift@INC,"/your/dir/favorite/place";
}

【譯者】建議改用較新的方式:

uselibqw(/your/dir/favorite/place);

好。以下是一個用到CGI::*modules的例子:

#!/usr/local/bin/perl-w

useCGI::Form;

$cgi_form=newCGI::Form;

print<<'End_of_Header';

看著我做!

看著我做!


End_of_Header

print$form->startform;

##產生一個單行輸入欄位(textfield)

print'姓名:';
print$form->textfield('name'),"
/n";

##產生一組單選按紐(radiobuttons)

print'

您住哪兒:
';
print$form->radio_group(-name=>'where',
-values=>['北美洲',
'南美洲',
'歐洲',
'澳洲',
'亞洲',
'南極洲'],
-default=>'北美洲',
-linebreak=>'true');

##產生一個多行輸入欄位(textarea)

print'意見:';
print$form->textarea('comments',undef,5,40);

print"

";
print$form->reset;
print$form->defaults;
print$form->submit('送出!','Submit');
print$form->endform;

print"";

reset、defaults,及submit叁種方法(methods)會產生不同的類型的按鈕。reset這個按鈕讓您把目前form欄位中所填的資料洗掉,并顯示屬於上一個狀態(或回合)的資料。defaults這個按鈕則是將form欄位資料徹底洗去。還有submit這個方法產生一個送出鈕以便讓人將資料送至server處。

您看,不是很容易嗎?

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品久久精品怡红院| 98视频在线噜噜噜国产| 久久亚洲成人精品| 日本在线精品视频| 亚洲国产免费av| 成人黄色午夜影院| 国内精品久久久久影院优| 国产丝袜高跟一区| 国产精品高清免费在线观看| 久久久免费在线观看| 97在线观看免费高清| 欧美亚洲午夜视频在线观看| 亚洲人在线观看| 疯狂欧美牲乱大交777| 8x拔播拔播x8国产精品| 日韩精品一二三四区| 人体精品一二三区| 精品少妇一区二区30p| 欧美性videos高清精品| 麻豆国产精品va在线观看不卡| 美日韩精品视频免费看| 5566成人精品视频免费| 国产亚洲综合久久| 亚洲在线免费视频| 国产精品久久久久久久电影| 欧美日韩国产色视频| 国产成人在线精品| 中文字幕日韩在线播放| 超碰日本道色综合久久综合| 91av在线免费观看视频| 81精品国产乱码久久久久久| 97色在线观看| 欧美大片大片在线播放| 久久激情五月丁香伊人| 色伦专区97中文字幕| 亚洲www在线观看| 北条麻妃一区二区三区中文字幕| 国产一区二区香蕉| 日韩中文字幕视频在线观看| 原创国产精品91| 宅男66日本亚洲欧美视频| 亚洲精品国产精品乱码不99按摩| 亚洲一区二区三区成人在线视频精品| 亚洲美女av在线播放| 欧美大奶子在线| 亚洲字幕一区二区| 中文字幕久久亚洲| 国产精品久久久久久久久久久久| 亚洲欧美日韩精品久久亚洲区| 欧美日韩成人在线观看| 久99九色视频在线观看| 日本午夜在线亚洲.国产| 91精品免费久久久久久久久| 欧美激情区在线播放| 日韩成人在线视频网站| 国产精品久久久久福利| 国产精品高潮呻吟久久av黑人| 欧美成人精品在线视频| 欧美第一黄网免费网站| 国产一区二区动漫| 91高清视频免费观看| 日韩精品免费在线观看| 亚洲最大的av网站| 久久久噜噜噜久噜久久| 91久久国产婷婷一区二区| 久久久久久久97| 国产精品99蜜臀久久不卡二区| 国产一区香蕉久久| 91精品国产亚洲| 国产精品香蕉av| 中文字幕亚洲一区在线观看| 亚洲人成免费电影| 日韩亚洲国产中文字幕| 91av在线看| 日本国产高清不卡| 欧美激情亚洲一区| 亚洲精品欧美极品| 中文字幕欧美精品在线| 亚洲高清福利视频| 97视频免费在线观看| 精品欧美一区二区三区| 日韩在线播放av| 亚洲天堂久久av| 精品动漫一区二区三区| yw.139尤物在线精品视频| 久久精品成人欧美大片古装| 欧美激情精品在线| 91亚洲国产成人精品性色| 欧洲成人午夜免费大片| 国产精品入口免费视| 5278欧美一区二区三区| 亚洲成av人乱码色午夜| 中文在线不卡视频| 精品一区二区三区四区在线| 亚洲精品久久久久国产| 大量国产精品视频| 日韩国产精品视频| 亚洲欧美制服丝袜| 久久人人爽人人爽人人片亚洲| 欧美精品日韩www.p站| 国产情人节一区| 91av中文字幕| 在线观看久久av| 亚洲精品成人网| 日韩精品中文字幕在线| 在线亚洲国产精品网| 国产精品主播视频| 欧美一级淫片丝袜脚交| 久久久久久69| 日本一区二区三区四区视频| 亚洲国产成人精品女人久久久| 欧美一级视频免费在线观看| 不卡中文字幕av| 成人h片在线播放免费网站| 77777亚洲午夜久久多人| 日本成人在线视频网址| 久久久久久久成人| 欧美精品精品精品精品免费| 欧美日本黄视频| 日韩av在线播放资源| 国产精品观看在线亚洲人成网| 久久色免费在线视频| 精品一区二区三区四区| 日韩网站免费观看| 91视频免费网站| 日韩在线视频导航| 91精品国产乱码久久久久久蜜臀| 国产视频亚洲视频| 奇米四色中文综合久久| 国产成人精品优优av| 91免费精品国偷自产在线| 成人精品网站在线观看| 国产日韩在线亚洲字幕中文| 精品亚洲精品福利线在观看| 成人午夜激情免费视频| 欧美国产亚洲精品久久久8v| 欧美成人免费一级人片100| 亚洲片国产一区一级在线观看| www亚洲精品| 8x海外华人永久免费日韩内陆视频| 欧美老女人xx| 久久99国产精品自在自在app| 91在线免费看网站| 久久精品久久久久久国产 免费| 日韩经典一区二区三区| 性色av香蕉一区二区| 成人久久一区二区三区| 国产精品久久久久77777| 亚洲精品456在线播放狼人| 日韩久久午夜影院| 精品久久久久久久大神国产| 一区二区三区 在线观看视| 欧美亚洲视频一区二区| 亚洲第一区中文99精品| 久久99青青精品免费观看| 成人免费在线视频网站| 97超级碰在线看视频免费在线看| 北条麻妃99精品青青久久| 尤物九九久久国产精品的特点| 日韩免费在线播放| 91国产精品电影| 日韩av一区二区在线观看| 国产美女被下药99| 91精品久久久久久久久中文字幕|