如何将参数传递给Perl/Tk中的子程序?
问题描述:
我已经设计了一个注册表单,在获得所有必要的值后,我将单击“提交”按钮。如何将参数传递给Perl/Tk中的子程序?
虽然点击提交按钮我想调用一个函数,我想传递参数到该函数。我已经为此写了代码,但是在获取细节之前先调用函数(即)在获取注册表单中的细节之后,我需要将这些值传递给一个函数,并且需要验证这些函数值。
但是,发生的事情是,在获取细节之前,函数被调用。
答
卡洛斯的建议是一种方法。另一种方法是在按钮上放置一个命令回调函数,从表单中读取值并调用您的函数,也许就像这样。
$button->configure(-command => sub { yourFunc($var1, $var2); });
我假设你已经绑定的形式向变量$var1
和$var2
这里的领域;当然修改以适合你自己的情况。
答
听起来像一个vwait问题。检查的Perl/Tk的文档中:
$widget->waitVariable(varRef)
这样你肯定当等待变量被修改时,才会执行代码(也就是当你点击“提交”按钮)
希望它帮助。
答
你有许多选项,指定当代码裁判和参数绑定到一个小窗口:
$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以获得更多信息。
非常感谢。 – kiruthika 2010-04-06 09:50:48