use strict; use Tk; my @booths; my $mw = MainWindow -> new; for (0..5) { $booths[$_]{button} = $mw->Button ( -text => "Booth $_", -command => [\&Vote, \@booths, $_] )->pack (); } $mw->Button (-text => 'Done', -command => sub {$mw->destroy ()})->pack (); MainLoop; sub Vote { my ($boothsRef, $boothNum) = @_; my $count = ++$boothsRef->[$boothNum]{count}; $boothsRef->[$boothNum]{button}->configure (-text => "Booth $boothNum ($count)"); }