in reply to opening multiple sub-windows in perl tk

I'm not sure exactly what you are after... but this prevents multiple view button pushes, closes the subwindow, and resets the view button. The downside is needing subwin1 to be a global, but that is good anyways for memory reuse of the subwin1 object.
#!/usr/bin/perl -w use warnings; use strict; use Tk; use Tk::FileSelect; my $mw = MainWindow->new; $mw->configure( -background => 'black', -foreground => 'white' ); $mw->geometry( "400x100" ); $mw->title( "Multiple Windows Test" ); my $button1; my $subwin1; $button1 = $mw->Button( -text => "view Results", -background => "cyan", -command => \&button1_sub )->pack( -side => "right" ); $mw->Button( -text => "Exit", -command => sub { exit } ) ->pack( -side => "bottom" ); sub button1_sub { $button1->configure(-state=>'disabled'); $subwin1 = $mw->Toplevel; $subwin1->geometry( "500x400" ); $subwin1->title( "Sub Window #1" ); my $fh; open( $fh, '+<', "./test.txt" ) or die $!; my @contents = <$fh>; # print "@contents\n"; close( $fh ); my $sublable = $subwin1->Scrolled( 'Text', -scrollbars => 'osoe', )- +>pack; $sublable->insert( 'end', @contents ); my $subwin_button = $subwin1->Button( -text => "Close window", -command => [$subwin1 => 'destroy'], )->pack( -side => "bottom" ); #=================Creating save buttion on subwindow =========== my $save_button = $subwin1->Button(-text=>'save', -command =>\&get_save, -background =>'cyan')->pack(-side=>'right'); } MainLoop; sub get_save { my $dst = $mw->getSaveFile( -initialdir => '/root/', -defaultextension => '.in', -initialfile =>'test.txt', -title => 'Save', -filetypes => [ [ 'myfiles' => '.in' ], [ 'All files' => '*' ], ], ); $dst ||= '<undef>'; warn "dst=$dst"; $button1->configure(-state=>'normal'); $subwin1->withdraw; }

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh