use Tk; use warnings; use strict; use Getopt::Long; use Cwd; use List::Util qw; require Tk::ROText; my $temp_var = ""; my $mw = MainWindow->new(); $mw->geometry("1200x1200+0+680"); $mw->title("SVN Util"); $mw->resizable(0,1); $mw->Button(-text=>"Test", -command=>\&pop_user_entry)->pack; MainLoop; sub pop_user_entry{ $temp_var = ""; my $user_entry_done = 0 ; my $dialog_top = $mw->Toplevel(-title=>"User Entry"); $dialog_top->Entry(-textvariable=>\$temp_var)->pack; $dialog_top->Button(-text=>"OK",-command=>sub {$user_entry_don +e = 1 unless($temp_var =~ m/^$/);})->pack; $dialog_top->waitVisibility; $dialog_top->grab; $dialog_top->waitVariable(\$user_entry_done); $dialog_top->grabRelease ; $dialog_top->destroy; }