use warnings; use strict; use Tk; my $font = "{Times New Roman} 32"; my @chosen; my $grid_width = 10; my $mw = MainWindow->new( -title => 'Keno', ); my $header_frame = $mw->Frame( -relief => 'raised', -border => 3 )->grid( -row => 0, -column => 0, -columnspan => $grid_width, -sticky => 'ew' ); $header_frame->Label( -text => 'Welcome to Keno', -font => "{Comic Sans MS} 24 bold", )->pack; my ( $row, $column ); for ( 0 .. 79 ) { $column = $_ % $grid_width; $row++ unless $column; $mw->Button( -width => 2, -font => $font, -text => $_ + 1, -command => [ sub { Button_Click( $_[0] ) }, $_ + 1 ] )->grid( -row => $row, -column => $column, ); } MainLoop; sub Button_Click { my $arg = shift; if ( defined $chosen[9] ) { print 'You already chose 10 numbers: '; print join ', ', @chosen; print "\n"; } else { print "$arg was choosen\n"; push( @chosen, $arg ); } }