我正在尝试将参数传递给处理wxPerl EVT_BUTTON事件的perl子例程。我明白,当我使用时:
EVT_BUTTON($frame, $button, \&onClick);
我可以在onClick
访问$ frame和$按钮及其功能。但是,我试图让子例程读取其他参数,主要是各种其他Wx::CheckBox
值的值/状态。
我看到这个工作的唯一方法是使用全局变量并获取onClick
来读取它们,但我想在其他地方重用onClick
,并且使用全局变量是我最不喜欢的选项。 / p>
我尝试了各种各样的事情,例如:
EVT_BUTTON($frame, $button, \&onClick(arg1,arg2));
我认为解决方案在于理解Perl引用的工作方式,因为我们在前面传递了\&onClick
\&
指示符。但我对Perl的这方面缺乏了解......
感谢任何帮助
答案 0 :(得分:2)
试试这个,
EVT_BUTTON($frame, $button, sub{ onClick($arg1,$arg2) });
它引用了anon子例程,然后调用onClick
sub,它等同于:
my $subref = sub{ onClick($arg1,$arg2) };
EVT_BUTTON($frame, $button, $subref);