. . . my $tf2= $frame2->Entry(-width=>8,-bg=>'white')->pack(-side=>'left',-pady=>3); my $frame3= $canvas2->Frame(-relief=>'groove',-borderwidth=>3, -bg=>'blue')->pack(-side=>'top',-fill=>'x'); my $btn3= $frame3->Button(-text=>"Enter", -command =>\&push_button)->pack(); sub push_button { $rows= $tf1->get(); $columns= $tf2->get(); print "I have been summoned\n"; #move this here, Filling the table according to rows and columns for(my $row=0;$row<$rows;$row++) { print "$row\n"; for(my $column=0;$column<$columns;$column++) { print "\t$column\n"; my $label=$canvas1->Label( -text=>"$row $column", -height=>2,-width=>10, -relief=>"raised", -background=>'white'); $table->put($row,$column,$label); } } } MainLoop;