rmflow has asked for the wisdom of the Perl Monks concerning the following question:

Hello, Monks! I have an application which extensively creates and destroys window controls, such as labels, buttons etc..
To get rid from window control I use Win32::GUI::DestroyWindow, but seems this method is not working properly, see example:
use strict; use Win32::GUI(); my $main = Win32::GUI::Window->new(-name => 'Main', -text => 'Perl', -width => 200, -height => 200); $main->AddLabel(-name => "Label", -text => "Hello, world", -left => 20 +, -top => 20, -notify => 1); sub Label_Click { for (1..1000) { Win32::GUI::DestroyWindow($main->{"Label"}{-handle}); delete $main->{"Label"}; $main->AddLabel(-name => "Label", -text => rand(), -left => 20 +, -top => 20, -notify => 1); } } $main->Show(); Win32::GUI::Dialog(); sub Main_Terminate { -1; }


When I click on label the program creates/destroys control many times. But seems there is huge memory leak, when using this method. Is there any "proper" way do destroy window control?

Replies are listed 'Best First'.
Re: Win32::GUI::DestroyWindow problem
by rpnoble419 (Pilgrim) on Dec 22, 2009 at 20:56 UTC

    you may want to look here for your answer:

    perl-win32-gui-users@lists.sourceforge.net

    This is the user group for Win32::GUI support and Rob May monitors it.