| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> perl >> Perl/TkFAQ-8.如何寫Perl/Tk腳本
 

Perl/TkFAQ-8.如何寫Perl/Tk腳本

2008-05-18 21:55:26  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  原文:

  8. How do I write scripts in perl/Tk?

  Start your script as you would any perl script (e.g. #!/usr/bin/perl, #!/usr/local/bin/perl, #!/opt/bin/perl, [built static? then #!/usr/bin/tkperl], whatever, see the perlrun(1) man page for more information).

  Throwing the -w warning switch is recommended.

  The use of the statement use strict; is recommended.

  Use of the statement use Tk; is required.

  A simple "Hello World!" widget script could be written as follows: #!/usr/local/bin/perl -w use strict; use Tk; my $main = new MainWindow; $main->Label(-text => 'Hello World!' )->pack; $main->Button(-text => 'Quit', -command => sub{exit} )->pack; MainLoop;

  The MainLoop; statement is the main widget event handler loop and is usually found in perl/Tk scripts (usually near the end of the main procedure after the widgets have been declared and packed). MainLoop; is actually a function call and you may see it written as MainLoop();, &Tk::MainLoop;, &Tk::MainLoop();, etc.

  Note the use of the -> infix dereference operator. Most things in calls to perl/Tk routines are passed by reference.

  Note also the use of the => operator which is simply a synonym for the comma operator (well it is a bit more than that :-). In other words, the arguments that get passed to Label and Button in the above example are good old perl associative arrays (perl 5 people prefer to call them "hashes" however). Indeed, we might have written the above as: #!/usr/local/bin/perl -w use strict; use Tk; my $main = new MainWindow; $main->Label(-text , 'Hello World!' )->pack; $main->Button(-text , 'Quit', -command , sub{exit} )->pack; MainLoop;

  Or even as: #!/usr/local/bin/perl -w use strict; use Tk; my $main = new MainWindow; my %hello = ('-text','Hello World!'); my %quit_com = ('-text' => 'Quit', '-command' => sub{exit}); $main->Label(%hello)->pack; $main->Button(%quit_com)->pack; MainLoop;

  Note however, that the use of the => in the first method of writing this script makes it look more "Tcl-ish" :-).

  Lastly, we note the extensive use of the my function in most perl/Tk programs. my is roughly equivalent to local in Perl 4 - but is purported to be "faster and safer" as well as much more strictly local in scope. See perlfunc(1) manpage for more information on my.

  Other examples of code may be found in the perl5/Tk/demos/ directory and in perl5/Tk/demos/widget_lib/.

  (A variant on this scipt called hello is available in the file perl5/Tk/demos/hello in your own pTk distribution. Also, Source code for this and other examples from UserGuide.pod may be found at http://www.perltk.org/contrib/pod/. To load code from the web save as a local filename, edit the first line to point to your perl interpreter, then: chmod u+x filename, then execute: filename.)

  譯文:

  8. 如何寫Perl/Tk腳本?

  腳本的首行應該是指明Perl解釋器的位置,例如#!/usr/bin/perl,#!/usr/local/bin/perl,#! /opt/bin/perl等等(如果是靜態編譯的,那麽就要用#!/usr/bin/tkperl)。要了解更詳細的信息,請參閱手冊頁:

  man 1 perlrun

  對于初學者而言,最好用-w開關打開警告信息,同時,推薦你使用use strict;語句。當然,作爲Tk程序,語句use Tk;是必不可少的。

  下面是一個簡單的「Hello World!」窗口腳本程序:

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

  use strict;

  use Tk;

  my $main = new MainWindow;

  $main->Label(-text => 'Hello World!'

  )->pack;

  $main->Button(-text => 'Quit',

  -command => sub{exit}

  )->pack;

  MainLoop;

  這裏,MainLoop;語句就負責循環的處理主窗口中的各組件所觸發的事件,一般Perl/Tk的腳本中都有這個語句(通常是在主程序的末尾,即各自組件聲明之後)。MainLoop;實際上是一個函數調用,所以它也可以被寫成如下的形式:

  MainLoop();

  &Tk::MainLoop;

  &Tk::MainLoop();

  另外,請注意這裏「->」引用操作符的使用,很多Perl/Tk的函數都是使用的引用來調用的。

  同時,這裏的「=>」操作符其實就是逗號操作符的的另一種寫法(當然,可能會用處更多一些:P)。換句話說,在上面的例子中,我們傳遞給Label和Button函數的參數其實就是Perl的關聯數組(associative array)(當然,Perl5中我們一般稱之爲hash)。因此,實際上我們也可以把上面的例程寫成:

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

  use strict;

  use Tk;

  my $main = new MainWindow;

  $main->Label(-text , 'Hello World!'

  )->pack;

  $main->Button(-text , 'Quit',

  -command , sub{exit}

  )->pack;

  MainLoop;

  或者,甚至是這樣:

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

  use strict;

  use Tk;

  my $main = new MainWindow;

  my %hello = ('-text','Hello World!');

  my %quit_com = ('-text' => 'Quit', '-command' => sub{exit});

  $main->Label(%hello)->pack;

  $main->Button(%quit_com)->pack;

  MainLoop;

  但是,請注意,最初的例子中的使用「=>」的寫法可能使你的腳本更加像Tcl。

  最後,我們會發現Perl/Tk的程序中很廣泛的使用「my」 聲明。在Perl4裏my基本上等同于local,但是據說除了更加嚴格的範圍定義外,還會更快和安全。(譯者注:在Perl5中my和local是完全不同的概念!可以用perldoc –f my和perldoc –f local來查閱手冊——windows也可以喲!)

  其它的例程,你可以在perl5/Tk/demos/和perl5/Tk/demos/widget_lib/目錄中找到。

  (另外,在你的pTk的安裝包中的demos/目錄中有一個名爲hello的腳本,實際上就和上面的例子很相似。要使用網頁上的代碼,你首先要把它保存爲一個本地的文件如filename,然後修改它的第一行爲你的系統中的Perl解釋器的位置,最後:chmod u+x filename,這樣就可以直接運行filename了。——譯者注:如果想省事,其實可以存下來以後就直接使用:perl filename來運行!:-P)
 
 
 
上一篇《Perl/TkFAQ-7.哪裏有Perl/Tk的文檔》
下一篇《Perl/TkFAQ-9.Perl/Tk中有哪些類型的組件》
 
 
 
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

河南夫妻在溫嶺網絡直播“造人”內容涉黃被刑事拘留

夫妻網絡直播“造人”爆紅   1月9日,溫嶺城北派出所接到南京警方的協查通告,他們近期打掉了一個涉黃直播APP平台。而根據掌握的線索,其中有一對涉案的夫妻主播...

如何防止牆紙老化?牆紙變舊變黃怎麽辦?

如何防止牆紙老化? (1)選擇透氣性好的牆紙 市場上牆紙的材質分無紡布的、木纖維的、PVC的、玻璃纖維基材的、布面的等,相對而言,PVC材質的牆紙最不透氣...

鮮肌之謎非日本生産VS鮮肌之謎假日貨是謠言

觀點一:破日本銷售量的“鮮肌之謎” 非日本生産 近一段時間,淘寶上架了一款名爲“鮮肌之謎的” 鲑魚卵巢美容液,號稱是最近日本的一款推出的全新護膚品,産品本身所...

中國最美古詩詞精選摘抄

系腰裙(北宋詞人 張先) 惜霜蟾照夜雲天,朦胧影、畫勾闌。人情縱似長情月,算一年年。又能得、幾番圓。 欲寄西江題葉字,流不到、五亭前。東池始有荷新綠,尚小如...

關于女人的經典語句

關于女人的經典語句1、【做一個獨立的女人】 思想獨立:有主見、有自己的人生觀、價值觀。有上進心,永遠不放棄自己的理想,做一份自己喜愛的事業,擁有快樂和成就...

未來我們可以和性愛機器人結婚嗎?

你想體驗機器人性愛嗎?你想和性愛機器人結婚嗎?如果你想,機器人有拒絕你的權利嗎? 近日,第二屆“國際人類-機器人性愛研討會”大會在倫敦金史密斯大學落下帷幕。而...

全球最變態的十個地方

10.土耳其地下洞穴城市 變態指數:★★☆☆☆ 這是土耳其卡帕多西亞的一個著名景點,傳說是當年基督教徒們爲了躲避戰爭而在此修建。裏面曾住著20000人,...

科學家稱,人類死亡後意識將在另外一個宇宙中繼續存活

據英國《每日快報》報道,一位科學家兼理論家Robert Lanza博士宣稱,世界上並不存在人類死亡,死亡的只是身體。他認爲我們的意識借助我們體內的能量生存,而且...

《屏裏狐》片頭曲《我愛狐狸精》歌詞是什麽?

《我愛狐狸精》 - 劉馨棋   (電視劇《屏裏狐》主題曲)   作詞:金十三&李旦   作曲:劉嘉   狐狸精 狐狸仙   千年修...

 
 
 
  原文:   8. How do I write scripts in perl/Tk?   Start your script as you would any perl script (e.g. #!/usr/bin/perl, #!/usr/local/bin/perl, #!/opt/bin/perl, [built static? then #!/usr/bin/tkperl], whatever, see the perlrun(1) man page for more information).   Throwing the -w warning switch is recommended.   The use of the statement use strict; is recommended.   Use of the statement use Tk; is required.   A simple "Hello World!" widget script could be written as follows: #!/usr/local/bin/perl -w use strict; use Tk; my $main = new MainWindow; $main->Label(-text => 'Hello World!' )->pack; $main->Button(-text => 'Quit', -command => sub{exit} )->pack; MainLoop;   The MainLoop; statement is the main widget event handler loop and is usually found in perl/Tk scripts (usually near the end of the main procedure after the widgets have been declared and packed). MainLoop; is actually a function call and you may see it written as MainLoop();, &Tk::MainLoop;, &Tk::MainLoop();, etc.   Note the use of the -> infix dereference operator. Most things in calls to perl/Tk routines are passed by reference.   Note also the use of the => operator which is simply a synonym for the comma operator (well it is a bit more than that :-). In other words, the arguments that get passed to Label and Button in the above example are good old perl associative arrays (perl 5 people prefer to call them "hashes" however). Indeed, we might have written the above as: #!/usr/local/bin/perl -w use strict; use Tk; my $main = new MainWindow; $main->Label(-text , 'Hello World!' )->pack; $main->Button(-text , 'Quit', -command , sub{exit} )->pack; MainLoop;   Or even as: #!/usr/local/bin/perl -w use strict; use Tk; my $main = new MainWindow; my %hello = ('-text','Hello World!'); my %quit_com = ('-text' => 'Quit', '-command' => sub{exit}); $main->Label(%hello)->pack; $main->Button(%quit_com)->pack; MainLoop;   Note however, that the use of the => in the first method of writing this script makes it look more "Tcl-ish" :-).   Lastly, we note the extensive use of the my function in most perl/Tk programs. my is roughly equivalent to local in Perl 4 - but is purported to be "faster and safer" as well as much more strictly local in scope. See perlfunc(1) manpage for more information on my.   Other examples of code may be found in the perl5/Tk/demos/ directory and in perl5/Tk/demos/widget_lib/.   (A variant on this scipt called hello is available in the file perl5/Tk/demos/hello in your own pTk distribution. Also, Source code for this and other examples from UserGuide.pod may be found at http://www.perltk.org/contrib/pod/. To load code from the web save as a local filename, edit the first line to point to your perl interpreter, then: chmod u+x filename, then execute: filename.)   譯文:   8. 如何寫Perl/Tk腳本?   腳本的首行應該是指明Perl解釋器的位置,例如#!/usr/bin/perl,#!/usr/local/bin/perl,#! /opt/bin/perl等等(如果是靜態編譯的,那麽就要用#!/usr/bin/tkperl)。要了解更詳細的信息,請參閱手冊頁:   man 1 perlrun   對于初學者而言,最好用-w開關打開警告信息,同時,推薦你使用use strict;語句。當然,作爲Tk程序,語句use Tk;是必不可少的。   下面是一個簡單的「Hello World!」窗口腳本程序:   #!/usr/local/bin/perl -w   use strict;   use Tk;   my $main = new MainWindow;   $main->Label(-text => 'Hello World!'   )->pack;   $main->Button(-text => 'Quit',   -command => sub{exit}   )->pack;   MainLoop;   這裏,MainLoop;語句就負責循環的處理主窗口中的各組件所觸發的事件,一般Perl/Tk的腳本中都有這個語句(通常是在主程序的末尾,即各自組件聲明之後)。MainLoop;實際上是一個函數調用,所以它也可以被寫成如下的形式:   MainLoop();   &Tk::MainLoop;   &Tk::MainLoop();   另外,請注意這裏「->」引用操作符的使用,很多Perl/Tk的函數都是使用的引用來調用的。   同時,這裏的「=>」操作符其實就是逗號操作符的的另一種寫法(當然,可能會用處更多一些:P)。換句話說,在上面的例子中,我們傳遞給Label和Button函數的參數其實就是Perl的關聯數組(associative array)(當然,Perl5中我們一般稱之爲hash)。因此,實際上我們也可以把上面的例程寫成:   #!/usr/local/bin/perl -w   use strict;   use Tk;   my $main = new MainWindow;   $main->Label(-text , 'Hello World!'   )->pack;   $main->Button(-text , 'Quit',   -command , sub{exit}   )->pack;   MainLoop;   或者,甚至是這樣:   #!/usr/local/bin/perl -w   use strict;   use Tk;   my $main = new MainWindow;   my %hello = ('-text','Hello World!');   my %quit_com = ('-text' => 'Quit', '-command' => sub{exit});   $main->Label(%hello)->pack;   $main->Button(%quit_com)->pack;   MainLoop;   但是,請注意,最初的例子中的使用「=>」的寫法可能使你的腳本更加像Tcl。   最後,我們會發現Perl/Tk的程序中很廣泛的使用「my」 聲明。在Perl4裏my基本上等同于local,但是據說除了更加嚴格的範圍定義外,還會更快和安全。(譯者注:在Perl5中my和local是完全不同的概念!可以用perldoc –f my和perldoc –f local來查閱手冊——windows也可以喲!)   其它的例程,你可以在perl5/Tk/demos/和perl5/Tk/demos/widget_lib/目錄中找到。   (另外,在你的pTk的安裝包中的demos/目錄中有一個名爲hello的腳本,實際上就和上面的例子很相似。要使用網頁上的代碼,你首先要把它保存爲一個本地的文件如filename,然後修改它的第一行爲你的系統中的Perl解釋器的位置,最後:chmod u+x filename,這樣就可以直接運行filename了。——譯者注:如果想省事,其實可以存下來以後就直接使用:perl filename來運行!:-P)
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
完美絕倫_秀色可餐
無懈可擊的優美線條
純美秀氣_楚楚動人
纖發盡顯_玲珑女生
痞子的甘南日記
疑是銀河落九天
雪域壩上四——純美色
冬日戀歌——西城楊柳弄輕柔
 
>>返回首頁<<
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有