http://www.perlmonks.org?node_id=674660


in reply to Modifying Tk widgets via references

well, here's the code i was talking about anyway (it works on linux fedora 7). If you need to believe about the memory thing, just try "Tk destroy memory" in PerlMonks or google.
#!/usr/bin/perl -w use strict; use Tk; my $MW = new MainWindow(); my $TLi = $MW->Toplevel(); $TLi->state('withdrawn'); my $TLii = $MW->Toplevel(); $TLii->state('withdrawn'); my $Bi = $MW->Button(-text=>"Toplevel 1",-command=>sub{raiselower(1)}) +->pack(); my $Bii = $MW->Button(-text=>"Toplevel 2",-command=>sub{raiselower(2)} +)->pack(); MainLoop; sub raiselower { if (@_ == 1) { my $state = $TLi->state(); if ($state eq "withdrawn") {$TLi->state('normal')} else {$TLi->state('withdrawn')} } elsif (@_ == 2) { my $state = $TLii->state(); if ($state eq "withdrawn") {$TLii->state('normal')} else {$TLii->state('withdrawn')} } }
Click the buttons alternately over and over!