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!