for (keys %runtime) { $widgetname = $_; $widgetrow{$widgetname} = $workframe -> Frame(); $wrLabel{$widgetname} = $widgetrow{$widgetname} -> Label(-text=>$widgetname) -> grid(-row=>1, -column=>1); $wrEntry{$widgetname} = $widgetrow{$widgetname} -> Entry(-width=>100, -textvariable=>\$runtime{$widgetname}) -> grid(-row=>1, -column=>2); $wrButton{$widgetname} = $widgetrow{$widgetname} -> Button(-text=>"Delete \"$widgetname\" entry", -command=>sub { my $deltgt = $widgetname; print "Deleting \"$deltgt->$runtime{$deltgt}\"\n"; delete $runtime{$deltgt}; print "Hash entry deleted\n"; delete($wrLabel{$deltgt})->destroy(); print "Widget label deleted and destroyed\n"; delete($wrEntry{$deltgt})->destroy(); print "Widget entry deleted and destroyed\n"; delete($wrButton{$deltgt})->destroy(); print "Widget button deleted and destroyed\n"; $widgetrow{$deltgt} -> destroy(); print "Widget row destroyed\n"; } ) -> grid(-row=>1, -column=>3); $widgetrow{$widgetname} -> grid(-row=>$row, -column=>1, -columnspan=>3); $rowsin = $row; $row++; }