in reply to Clearing & Redrawing a Wx Window

Hi, I'm not able to run your code, because I don't have Wx going, but from my experience with Tk and Gtk2, I would say to avoid the "destroy-create-new" cycle.
$main::wxobj->Destroy; $main::wxobj->new;
In most gui toolkits, you will gain memory by doing that( although a single cycle wouldn't be an enormous gain). You should look for $wxwidg->Withdraw (or it's equivalent) to just remove the window from view( without destroying it). Then while it is in it's withdrawn state, reconfigure all it's children to initial values, then raise it back into view when desired.

Although I may be getting thrown off by all the package interelations, I think you are probably destroying the code which makes it possible to launch the new window. You call Destroy from within the package itself, on itself, and "itself" IS the program event loop. At that point you probably end the MainLoop and the program stops.

# The main program $wxobj = MyApp->new(); # New HelloWorld application # when $destroy is called from within $self, # the MainLoop stops $wxobj->MainLoop;

I'm not really a human, but I play one on earth. Cogito ergo sum a bum