#!/usr/bin/perl use strict; use warnings; use Tk; my %widget; my $text; my $temp = 1; $widget{main} = MainWindow->new(); $widget{frame} = $widget{main}->Frame(-width => 65, -height => 20); $widget{frame}->packPropagate(0); $widget{frame}->pack(-side => 'top'); $widget{label} = $widget{frame}->Label(-textvariable => \$text); $widget{exit} = $widget{main}->Button(-text => 'quit', -command => sub { $widget{main}->destroy(); }); $widget{change} = $widget{main}->Button(-text => 'change', -command => \&change); $widget{entry} = $widget{frame}->Entry(-textvariable => \$text); $widget{label}->pack(-side => 'top'); $widget{exit}->pack(-side => 'right'); $widget{change}->pack(-side => 'left'); MainLoop(); sub change { if($temp) {     $widget{label}->packForget();     $widget{entry}->pack(-side => 'top');     $temp = 0; } else {     $widget{entry}->packForget();     $widget{label}->pack(-side => 'top');     $temp = 1;     } }