use Tk; use strict; my $mw = MainWindow->new(); my $button1 = $mw->Button(-text => "on release 1")->pack(); $button1->bind('' => \&doit1 ); my $msg = "pressed 2"; my $button2 = $mw->Button(-text => "on realease 2")->pack(); $button2->bind('' => sub { \&doit2($msg) } ); my $button3 = $mw->Button(-text => "on release 3")->pack(); $button3->bind('' => [\&doit3]); my $msg1 = "pressed 4"; my $button4 = $mw->Button(-text => "on release 4")->pack(); $button4->bind('' => [\&doit4, $msg1]); MainLoop; sub doit1(){ print "pressed 1\n"; } sub doit2(){ my $msg = shift; print "$msg\n"; } sub doit3(){ print "pressed 3\n"; } sub doit4(){ shift; my $msg = shift; print "$msg\n"; } #### pressed 1 pressed 2 pressed 3 pressed 4