... 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 ver. 1 $main->Button(-text => 'To Upper Case', -command => &{$change_mode}(2) )->pack; #Case 3: Callback routine called with argument via named reference ver. 2 $main->Button(-text => 'To Mixed Case', -command => $change_mode->(3) )->pack;