nysus has asked for the wisdom of the Perl Monks concerning the following question:
... my $change_mode = \&change_mode; ... #Case 1: Callback routine called directly with anonymous reference $main->Button(-text => 'To Lower Case', -command => sub { &change_mode(1) } )->pack; ... #Case 2: Callback routine called with argument via named reference ve +r. 1 $main->Button(-text => 'To Upper Case', -command => &{$change_mode}(2) )->pack; #Case 3: Callback routine called with argument via named reference ve +r. 2 $main->Button(-text => 'To Mixed Case', -command => $change_mode->(3) )->pack;
Why does case 1, which uses an anonymous reference to the subroutine, work, while case 2 and 3 fail? What is the proper syntax for passing arguments to a subroutine that has a named reference when using callbacks?
$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff";
$nysus = $PM . $MCF;
Click here if you love Perl Monks
|
|---|