| 订阅 | 在线投稿
分享
 
 
当前位置: 王朝网络 >> perl >> Perl/TkFAQ-10.1.如何使用按钮来调用Perl的子程序
 

Perl/TkFAQ-10.1.如何使用按钮来调用Perl的子程序

2008-05-18 21:55:23 编辑來源:互联网 繁體版 评论
 
 
  原文:

  10.1. How do I get a Button to call a Perl subroutine?

  You may specify the -command option in the call to create & pack the button as in: $main->Button(-text => 'Print', -command => sub{do_print($filename, $font)} )->pack;

  Where sub do_print { } is a subroutine that handles two arguments and is declared elsewhere in the script. A full script example of the use of the above code is presented in the second example(s) in UserGuide.pod

  (Full 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 file say ex1.pl, edit the first line to point to your perl interpreter, then change permission: %chmod u+x ex1.pl, then execute the script: %ex1.pl.)

  The above method is called the "anonymous subroutine (closure)" method. As discussed in Callback.pod one might have re-written that statement to use the "reference to a sub" method thusly: $main->Button(-text => 'Print', -command => [ \&do_print , $filename, $font ] )->pack;

  Note the backslash in front of \&do_print. This causes perl to generate a reference to sub do_print rather than call it. (thanks Jim Stern :-)

  译文:

  10.1. 如何使用按钮来调用Perl的子程序?

  在创建和布置按钮的时候,可以通过设定-command选项来指定某个子程序,例如:

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

  -command => sub{do_print($filename, $font)}

  )->pack;

  其中,子程序do_print{}是在脚本的其它地方定义的,它可以接受两个参数。UserGuide.pod中的第二个例子就是使用上面的代码的完整的样本。

  (译者注:由于原文中提供的链接无法使用,建议大家直接在自己安装的Tk目录中找就可以了。)

  在上面的例子中使用了“匿名子程序”(anonymous subroutine)方法。根据Callback.pod中的说明,我们可以用“子程序引用”的方法来改写上面的语句,如下:

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

  -command => [ \&do_print , $filename, $font ]

  )->pack;

  请注意,在\&do_print之前的反斜杠(\)。这种用法可以使Perl不是调用这个子程序,而是产生出一个指向子程序do_print的引用。(感谢Jim Stem)
 
 
 
上一篇《Perl/TkFAQ-10.如何使用某个组件来完成某个工作》
下一篇《Perl/TkFAQ-10.2.如何设置按钮随鼠标指向的动态变化》
 
 
 
 
 
 
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

如何磨出破洞牛仔裤?牛仔裤怎么剪破洞?

把牛仔裤磨出有线的破洞 1、具体工具就是磨脚石,下面垫一个硬物,然后用磨脚石一直磨一直磨,到把那块磨薄了,用手撕开就好了。出来的洞啊很自然的。需要猫须的话调几...

我就是扫描下图得到了敬业福和爱国福

先来看下敬业福和爱国福 今年春节,支付宝再次推出了“五福红包”活动,表示要“把欠大家的敬业福都还给大家”。 今天该活动正式启动,和去年一样,需要收集“五福”...

冰箱异味产生的原因和臭味去除的方法

有时候我们打开冰箱就会闻到一股异味,冰箱里的这种异味是因为一些物质发出的气味的混合体,闻起来让人恶心。 产生这些异味的主要原因有以下几点。 1、很多人有这种习...

 
 
 
  原文:   10.1. How do I get a Button to call a Perl subroutine?   You may specify the -command option in the call to create & pack the button as in: $main->Button(-text => 'Print', -command => sub{do_print($filename, $font)} )->pack;   Where sub do_print { } is a subroutine that handles two arguments and is declared elsewhere in the script. A full script example of the use of the above code is presented in the second example(s) in UserGuide.pod   (Full 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 file say ex1.pl, edit the first line to point to your perl interpreter, then change permission: %chmod u+x ex1.pl, then execute the script: %ex1.pl.)   The above method is called the "anonymous subroutine (closure)" method. As discussed in Callback.pod one might have re-written that statement to use the "reference to a sub" method thusly: $main->Button(-text => 'Print', -command => [ \&do_print , $filename, $font ] )->pack;   Note the backslash in front of \&do_print. This causes perl to generate a reference to sub do_print rather than call it. (thanks Jim Stern :-)   译文:   10.1. 如何使用按钮来调用Perl的子程序?   在创建和布置按钮的时候,可以通过设定-command选项来指定某个子程序,例如:   $main->Button(-text => 'Print',   -command => sub{do_print($filename, $font)}   )->pack;   其中,子程序do_print{}是在脚本的其它地方定义的,它可以接受两个参数。UserGuide.pod中的第二个例子就是使用上面的代码的完整的样本。   (译者注:由于原文中提供的链接无法使用,建议大家直接在自己安装的Tk目录中找就可以了。)   在上面的例子中使用了“匿名子程序”(anonymous subroutine)方法。根据Callback.pod中的说明,我们可以用“子程序引用”的方法来改写上面的语句,如下:   $main->Button(-text => 'Print',   -command => [ \&do_print , $filename, $font ]   )->pack;   请注意,在\&do_print之前的反斜杠(\)。这种用法可以使Perl不是调用这个子程序,而是产生出一个指向子程序do_print的引用。(感谢Jim Stem)
󰈣󰈤
 
 
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
情人节的清纯女生(9)
情人节的清纯女生(8)
情人节的清纯女生(7)
情人节的清纯女生(6)
山东蓬莱海边组照
一探哲蚌 II
一探哲蚌 III
古长城的一角
 
>>返回首页<<
 
 
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 热帖排行
 
 
 
 
©2005- 王朝网络 版权所有