如何将参数传递给Perl / Tk中的子程序?

时间:2010-04-06 07:46:02

标签: perl tk

我设计了一个注册表单,在获得所有必要值后,我会点击提交按钮。

点击该提交按钮时,我想调用一个函数,我想将参数传递给该函数。

我已为此目的编写代码,但在获取详细信息之前首先调用该函数。(即)在以注册表单获取详细信息后,我需要将这些值传递给一个函数,我需要验证这些值

但发生的事情是,在获取详细信息之前,函数被调用。

3 个答案:

答案 0 :(得分:3)

卡洛斯的建议是单向的。另一种方法是在按钮上放置命令回调,该按钮从表单中读取值并调用您的函数,也许就像这样。

$button->configure(-command => sub { yourFunc($var1, $var2); });

我假设您已将表单的字段绑定到此处的变量$var1$var2;修改以适合您自己的情况当然。

答案 1 :(得分:3)

在指定代码引用和绑定到窗口小部件的参数时,您有许多选项:

$w->configure( -command => [ \&subname,   @args ... ]             );
$w->configure( -command => [ sub { ... }, @args ... ]             );
$w->configure( -command => [ 'methodname', $invocant, @args ... ] );
$w->configure( -command => [ $invocant, 'methodname', @args ... ] );

有关详细信息,请参阅Tk::callbacks POD。

答案 2 :(得分:0)

听起来像是一个vwait问题。请查看Perl / Tk文档:

$widget->waitVariable(varRef)

通过这种方式,您确定您的代码仅在修改等待变量时执行(即单击“提交”按钮时)

希望它有所帮助。