我正试图将参数传递给处理wxPerl EVT_BUTTON事件的perl子例程。我明白当我使用:
时EVT_BUTTON($frame, $button, &onClick);
我将访问onClick
中的$frame和$button及其功能。然而,我试图让子程序读取额外的参数,主要是各种其他Wx::CheckBox
值的值/状态。
我看到这个工作的唯一方法是使用全局变量,让onClick
读取它们,但我想在其他地方重用onClick
,使用全局变量是我最不喜欢的选择。
我尝试了各种方法,但都失败了,例如:
EVT_BUTTON($frame, $button, &onClick(arg1,arg2));
我认为解决方案在于理解Perl引用是如何工作的,因为我们正在传递&onClick
和&
指示器在前面。但是我缺乏这方面的知识……
感谢您的帮助
试试这个,
EVT_BUTTON($frame, $button, sub{ onClick($arg1,$arg2) });
给出了一个子程序的引用,该子程序调用onClick
sub,它相当于:
my $subref = sub{ onClick($arg1,$arg2) };
EVT_BUTTON($frame, $button, $subref);